使用sql语句创建和删除约束
使用sql语句创建和删除约束 约束类型 主键约束(Primary Key constraint) --:要求主键列数据唯一,并且不允许为空。 唯一约束(Unique constraint) --:要求该列唯一,允许为空,但只能出现一个空值。 检查约束(Check constraint) --:某列取值范围限制,格式限制等,如有关年龄、邮箱(必须有@)的约束。 默认约束(Default constraint) --:某列的默认值,如在数据库里有一项数据很多重复,可以设为默认值。 外键约束(Foreign Key constraint) --:用于在两个表之间建立关系,需要指定引用主表的哪一列。 ********************************************************************** 添加约束: alter table tablename add constraint pk_colname primary key(colname)主建约束 alter table tablename add constraint uq_colname unique (colname)唯一约束 alter table tablename add constraint df_colname default('地址不详')for colname 默认约束 alter table tablename add constraint ck_colname check(colname between 12 and 15)检查约束 alter table tablename add constraint fk_colname foreign key(colname)references tablename(colname)外建约束 删除约束: alter table tablename drop constraint 约束名 创建登陆帐户/数据库用户 创建登录帐户: exec sp_grantlogin 'windows 域名/域帐户'创建数据库用户: exec sp_grantdbaccess '登陆帐户','数据库用户'向数据库授权: grant 权限[on 表名]to 数据库用户 以上语句可直接在企业管理器中操作 企业管理器/安全性/登陆/新建登陆 填写名称和密码 选择数据库访问,再底下"数据库角色中允许" db_owner也打上勾 默认约束使用户能够定义一个值,每当用户没有在某一列中输入值时,则将所定义的值提供给这一列。如果用户对此列没有特定的要求,可以使用默认约束来为此列输入默认值。在SQL Server 中,如果给表的一个字段设置了默认值,就会在系统表sysobjects中生成一个默认约束。
如果想删除这个设置了默认值的字段(假设此字段名column1),
执行“ALTER TABLE table1 DROP COLUMN column1”时就会报错:
The object 'DF__xxxxxxxxxxx' is dependent on column 'column1'.
ALTER TABLE DROP COLUMN column1failed because one or more objects Access this column.
所以在删除此字段时需要先将系统表中的对应默认约束删除, 可以使用下面的脚本进行删除:
|
-- this script drops the default constraint which is generated by the setting of default value. declare @defname varchar(100) select @defname = name select @cmd='alter table '+ @tablename+ ' drop constraint '+ @defname |
在删除对应的默认约束后,执行:
ALTER TABLE table1 DROP COLUMN column1
即可删除字段。
浙公网安备 33010602011771号