Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当谈到 Sql Server 时,我几乎是一个新手,我有一个关于如何约束表中数据的问题。
我有 2 个字段,它们都是位字段。任何一个或两者都必须设置为 true,但两者都不能设置为 false。
这是一个约束还是触发器的工作?
提前致谢。
使用检查约束
CREATE TABLE T ( B1 BIT NOT NULL, B2 BIT NOT NULL, CHECK (B1 = 1 OR B2 =1) )
这些比触发器更轻。
使用触发器将需要在其中构造INSERTED和DELETED伪表tempdb并对此进行查询。
INSERTED
DELETED
tempdb
检查约束也会更早触发,并且(在失败的情况下)更新/插入会减少需要回滚的不必要工作。
您应该使用约束,触发器(主要)用于执行操作,而不是纯粹的验证任务。