我对SQL Server管理完全陌生,我尝试在表中添加约束。
情况是我创建的列只有只有' Y' N' N'允许被重视。
所以我尝试通过右击" Constraints"在Management Studio中创建一个约束。在表中。
但是,我真的不知道创建约束的语法。最后,我尝试将代码输入" Check Constraint Expression"窗口通过从Internet引用模板。 SQL Server总是告诉我"错误验证constaint"。
你们能帮助我为我写第一个约束吗?因为我真的不知道如何开始。
我的要求是:
I have a table called "Customer"
I created a column called "AllowRefund"
The column "AllowRefund" is only allowed to 'Y' or 'N'
感谢。
答案 0 :(得分:1)
我会反对你要做的事情。有一种数据类型(Bit)用于表示具有两种状态的值。如果使用此类型,则根本不需要约束。 SQL Server将强制值为1或0,无需额外的工作。您只需将您的应用设计为将1视为是,将0视为否。
你正在尝试的方法并不是一个好主意,也没有好处。
答案 1 :(得分:1)
您可以按照以下方式执行此操作:
ALTER TABLE Customer
ADD CONSTRAINT CK_Customer_AllowRefund
CHECK (AllowRefund in ('Y','N'))
然而@JohnFx是正确的 - 你最好把这个专栏改成一个字段。
答案 2 :(得分:1)
我部分同意JohnFix,但是由于知道定义检查约束的正确语法可能对您有用(因为您显然不阅读手册),这里是创建这样一个约束的SQL: / p>
alter table customer
add constraint check_yes_no check (AllowRefund in ('Y', 'N'));
您可能还希望将列定义为NOT NULL
,以确保您始终拥有该值。
(由于我不使用“Management Studio”,我无法告诉您在何处以及如何输入该SQL)。