Sql Server 2005 约束(constraint)的增加
2009-02-02 09:54
330 查看
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
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
相关文章推荐
- Sql Server 2005 约束(constraint)的增加
- 刷新数据库总是报错:不能增加或者更新约束, Cannot add or update a child row: a foreign key constraint fails
- 如何在 SQL Server 2005 中为安装程序增加计数器注册表项值
- SQL Server 2005增加的排名函数
- sql server增加及删除约束的方法
- sql server 2005建立数据库,表,约束,账户密码,权限,基本查询删除语句
- 如何在 SQL Server 2005 中为安装程序增加计数器注册表项值
- sql中constraint主要是增加约束
- SQL Server 2008 转换为 SQL 2005 数据库 脚本生成方式(解决主键、索引、标识等数据库约束丢失)
- sqlserver2005安装错误:性能监视器计数器要求:SQL Server 2005 中为安装程序增加计数器注册表项值
- SQL Server 2005------表,列,约束,主键相关的实用T-SQL
- sql server 2005中新增加的try catch学习
- SQL SERVER中增加删除约束
- SQL Server 2005中约束
- 安装SQL Server 2005 时提示增加计数器注册表项值错误
- SQL SERVER中增加删除约束
- 如何在 SQL Server 2005 中为安装程序增加计数器注册表项值
- 如何在SQL Server 2005 中为安装程序增加计数器注册
- SQL Server 2005新增加的功能
- 如何在 SQL Server 2005 中为安装程序增加计数器注册表项值