T-SQL语句添加约束

语法: 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添加)

    原文作者:SQL
    原文地址: https://blog.csdn.net/zark721/article/details/61189110
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞