1

当谈到 Sql Server 时,我几乎是一个新手,我有一个关于如何约束表中数据的问题。

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

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

提前致谢。

4

2 回答 2

5

使用检查约束

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

这些比触发器更轻。

使用触发器将需要在其中构造INSERTEDDELETED伪表tempdb并对此进行查询。

检查约束也会更早触发,并且(在失败的情况下)更新/插入会减少需要回滚的不必要工作。

于 2013-11-13T14:32:16.230 回答
0

您应该使用约束,触发器(主要)用于执行操作,而不是纯粹的验证任务。

于 2013-11-13T14:33:24.373 回答