您的位置:首页 > 数据库

T-SQL语句添加约束

2017-03-10 09:27 246 查看
语法: ALTER TABLE 表名 ADD CONSTRAINT约束名约束类型 具体的约束声明

约束名的取名规则推荐采用:约束类型_约束列,当然你也可以不这么命名,这样单纯是比较方便

如:主键(Primary Key)约束:PK_UserId

        唯一(Unique key)约束: UQ_UserCardId

        默认(Default Key)约束 DF_UserPasswd

        检查(Check Key)约束 CK_Gender

        外键(Foreign Key)约束: FK_SortId

       --以上加棕色段是我定义表中的列名称

打个比方:add constraint PK_UserId PRIMARY KEY (UserId)

--PK_UserId 是自定义约束名 , PRIMARY KEY 是约束类型, (UserId)是具体的约束声明

举例,代码如下:

USE Demo --操作的数据库名
GO
ALTER TABLE Test_Table1--要进行限制约束的表
add constraint PK_UserId PRIMARY KEY (UserId), --主键约束
constraint CK_UserPwd CHECK(LEN(UserPwd)>=6), --查询约束,长度限制
constraint CK_Gender CHECK(Gender=0 OR Gender =1),--查询约束,范围限制
constraint DF_Gender DEFAULT(0) for Gender,--默认约束,设置默认值
constraint CK_E_mail CHECK(E_mail LIKE '%@%')  --检查约束,格式检查
GO
-------------------------------------------------------------------------------------

USE E_Market --操作的数据库名

GO
ALTER TABLE OrderInfo --要进行限制约束的表

ADD CONSTRAINT PK_OrderId PRIMARY KEY(OrderId),
CONSTRAINT FK_UserId Foreign KEY(UserId) References UserInfo(UserId), --外键约束
CONSTRAINT FK_ConmodityId Foreign KEY(CommodityId) References CommodityInfo(CommidityId),
CONSTRAINT DF_PayWay Default('网上银行') FOR PAYWAY,
CONSTRAINT CK_Confirm Check(Confirm=0 OR Confirm =1),
CONSTRAINT DF_Confirm Default(0)FOR Confirm ,
CONSTRAINT CK_SendGoods Check(SendGoods=0 OR SendGoods =1),
CONSTRAINT DF_SendGoods Default(0)For SendGoods
GO




贴士: 主外键约束时,PRIMARY KEY ,FOREIGN KEY,其余约束不用加KEY
注意:1.外键约束时要注意外键FK_xx 必须与引用的主键列的类型 长度 完全一致

         2.外键约束引用的表中必须有主键列

         3.当添加约束的表中已存在数据,但又要对其添加约束,只需要修改第一行 ALTER TABLE 表名  WITH NOCHECK (但是对与之前的数据,将不做任何检查)

 设置外键FK时,外键通过将列连接到另一个表中的唯一键而工作,并且该唯一键必须定义为某种唯一索引形式,即主键或其他唯一索引。(2017-3-12添加)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: