Sql Server 2005 约束(constraint)的增加

 Sql Server 2005 约束有四种:CHECK、FOREIGN KEY、UNIQUE 和 PRIMARY KEY 约束

1、在create table的时候建立约束,例如,create table test(userid int primary key not null,username nvarchar(20) unique)

2、在已存在的表中添加约束,又分为两种

      a) 通过T-SQL来实现,例如:

          ALTER TABLE dbo.<tablename> ADD CONSTRAINT
              
<namingconventionconstraint> UNIQUE NONCLUSTERED
         
(
               
<columnname>
         
) ON [PRIMARY]

      b) 通过DateBase Diagram(Sql Server Management Studio)来完成,四种约束的实现方法各不相同,

          unique:在"对象资源管理器"中展开表,右击"索引",选择"新建索引",写上索引的名称,类型为"非聚集",选中"唯一(Q)"的选择框,"确定"即可。

          check:在"对象资源管理器"中展开表,右击"约束",选择"新建约束"。

          foreign key:在"对象资源管理器"中展开表,右击"键",选择"新建外键",在其中操作即可。

          primary key:在"对象资源管理器"中,右击该表,选择"设计",在设计页面,选择要设为主键的字段,右击选择"设置主键"即可。

 

写最后一个建立主键时才发现,使用DateBase Diagram(Sql Server Management Studio)来修改数据库设计的时候,所有的约束都可以通过"对象资源管理器"中,右击该表,选择"设计",在设计页面,选择要修改的字段右击,在其中添加即可。

 

 

最后关于check约束的一点解释,以前并没有用过,此段为"帮助"文档中的摘录:

      “通过限制列可接受的值,CHECK 约束可以强制域的完整性。此类约束类似于 FOREIGN KEY 约束,因为可以控制放入列中的值。但是,它们在确定有效值的方式上有所不同:FOREIGN KEY 约束从其他表获得有效值列表,而 CHECK 约束通过不基于其他列中的数据的逻辑表达式确定有效值。例如,可以通过创建 CHECK 约束将 salary 列中值的范围限制为从 $15,000 到 $100,000 之间的数据。这将防止输入的薪金值超出正常的薪金范围。

可以通过任何基于逻辑运算符返回 TRUE 或 FALSE 的逻辑(布尔)表达式创建 CHECK 约束。对于上面的示例,逻辑表达式为:salary >= 15000 AND salary <= 100000。

可以将多个 CHECK 约束应用于单个列。还可以通过在表级创建 CHECK 约束,将一个 CHECK 约束应用于多个列。例如,多列 CHECK 约束可用于确认 country/region 列值为 USA 的任意行是否在 state 列中还有一个两个字符的值。这使得在一个位置可以同时检查多个条件。”

                                                                                                    2009-02-02

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值