添加CHECK约束在SQL Server:添加约束VS添加复
问题描述:
我想在任何表使用检查约束列在SQL Server 2008中添加CHECK约束在SQL Server:添加约束VS添加复
我想给一个合格的名称来检查约束。
我已经看到了如何创建它的几个语法版本:
ALTER TABLE [dbo].[Roles2016.UsersCRM] WITH CHECK
ADD CHECK (([Estado]=(4) OR [Estado]=(3) OR [Estado]=(2) OR [Estado]=(1)))
ALTER TABLE [dbo].[Roles2016.UsersCRM] WITH CHECK
ADD CONSTRAINT [CK_UsuariosCRM_Estado]
CHECK (([Estado]=(4) OR [Estado]=(3) OR [Estado]=(2) OR [Estado]=(1)))
什么是用于检查约束差异ADD CHECK
和ADD CONSTRAINT
?
答
这是可能的,但非常不好的习惯到没有名字添加约束:
CREATE TABLE tbl(SomeColumn VARCHAR(10) DEFAULT('test'))
将创建一个CONSTRAINT
以任意名称。最好使用这个
CREATE TABLE tbl(SomeColumn VARCHAR(10) CONSTRAINT DF_YourTable_SomeColumm DEFAULT('test'))
这样做也是一样,但会按照您的要求命名约束条件。
这是极其重要如果您在部署的环境中运行升级脚本。想象一下,你想稍后改变一个约束,这个约束的名称在你的客户机器上是完全不同的......这真是一种痛苦!
所以:总是命名你的约束!
第二种语法允许您为约束命名。第一个没有。命名限制是个好习惯。 –