创建 T-SQL 约束以防止表中出现 x 数量的重复记录?
在 table A
中,我有 2 列:
ID (int, PK)
MaxUsers (int)
在 table B
中,我有 2 列:
ItemID (int)
UserID (int)
table A
中具有匹配 ItemID 的记录数
不能超过 MaxUsers
值。
是否可以编写一个 T-SQL 表约束,使得这种情况在物理上不可能发生?
干杯! 柯特
In table A
I have 2 columns:
ID (int, PK)
MaxUsers (int)
In table B
I have 2 columns:
ItemID (int)
UserID (int)
The number of records in table A
with matching ItemID
's cannot exceed the MaxUsers
value.
Is it possible to write a T-SQL Table Constraint so that it's not physically possible for this to ever happen?
Cheers!
Curt
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以编写一个插入/更新触发器,在不再满足条件时回滚查询。
You could write an on-insert/update trigger that does a rollback of the query when the conditions are no longer met.
您可以使用“vanilla”约束来做到这一点,例如行级
CHECK
约束,UNIQUE
约束,FOREIGN KEYS
,使其具有高度可移植性,例如为了维护
ID_occurrence
序列,您可以创建一个“helper”存储过程或触发器。You can do this with 'vanilla' constraints e.g. row-level
CHECK
constraints,UNIQUE
constraints,FOREIGN KEYS
, making it highly portable e.g.To maintain the
ID_occurrence
sequence, you could create a 'helper' stored proc or a trigger.