我希望列只有两个值。例如,我想让列激活只能包含值“Y”和“N”我不想使用布尔数据类型。
我正在寻找类似于MS Access的查找向导的方法,如何做到这一点?
答案 0 :(得分:3)
使用不可为空的位
最后,SQL Server没有这样的布尔类型:客户端代码将位解释为布尔值,但
在对问题发表评论后编辑。
如果您需要添加更多值,那么我建议使用查找表和外键。这意味着您可以在不更改代码(CHECK约束)和/或数据类型的情况下支持新值。
答案 1 :(得分:1)
您正在寻找的是Check Constraints e.g。
ALTER TABLE dbo.Vendors ADD CONSTRAINT CK_Vendor_CreditRating
CHECK (CreditRating >= 1 AND CreditRating <= 5)
或者你
ALTER TABLE dbo.MyTableName ADD CONSTRAINT CK_MtTable_FieldName_YN
CHECK (FieldName = 'Y' OR FieldName = 'N')
答案 2 :(得分:-1)
您可以使用varchar(1)或nvarchar(1)。在您声明只有Y和N可用作输入以保持数据完整性的列上设置约束。
Grz,Kris。