我坚持在SQL Server上创建约束

时间:2012-11-02 22:06:37

标签: sql sql-server database

我对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'

感谢。

3 个答案:

答案 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)。