2010-10-08 121 views

回答

2

手动进行此类更改总是会更好,而不是通过GUI。

ALTER TABLE YourTable 
ADD CONSTRAINT CHK_YourTable_YourColumn_YesOrNo CHECK(YourCOlumn IN ('Y', 'N')) 

编辑:GUI可以发出最理想的DDL,并与小练习,你可以只是用手动脚本与GUI高效,你知道到底发生了什么。另外,您确实想要将所有的DDL存储在版本控制中,包括更改的脚本。

+0

sashok,pochemu?为什么手动更好? – 2010-10-08 17:58:34

+0

@jenny:因为你不能保证你有GUI访问,并且操作通常是特定于该工具的(IE:不能在TOAD for SQL Server中使用相同的进程等) – 2010-10-08 17:59:49

+0

+1,'为什么是SSMS经常编写一个大规模的脚本来生成一个完整的重复的新表(使用新的更改)将所有数据复制到它中,然后删除原始表并将新表重命名为原始表名它会删除并添加所有的约束和索引等。它更容易,更快,对数据库施加更小的压力,并且学习和使用更简单的ALTER TABLE命令更可靠。 – 2010-10-08 18:22:56

1

使用ALTER TABLE语句:

ALTER TABLE dbo.YOUR_TABLE 
    ADD CONSTRAINT bool_check CHECK (LOWER(your_column) IN ('n', 'y')) ; 
0
alter table TableName 
    add constraint CHK_TableName_ColumnName check (ColumnName in ('Y','N','y','n'))