约束或触发器

时间:2013-11-13 14:30:05

标签: sql sql-server

对于Sql Server,我几乎是一个新手,我对如何约束表中的数据有疑问。

我有两个字段,都是位字段。必须将任何一个或两个都设置为true,但两者都不能设置为false。

这是一个约束还是触发器的工作?

提前致谢。

2 个答案:

答案 0 :(得分:5)

使用检查约束

CREATE TABLE T
(
B1 BIT NOT NULL,
B2 BIT NOT NULL,
CHECK (B1 = 1 OR B2 =1)
)

这些比触发器重量轻。

使用触发器需要构建INSERTED中的DELETEDtempdb伪表以及针对此的查询。

检查约束也会提前触发,并且(如果发生故障)更新/插入会减少需要回滚的不必要的工作。

答案 1 :(得分:0)

您应该使用约束,触发器(大部分)用于执行操作,而不是纯验证任务。