gpt4 book ai didi

sql - 将列值限制为 0 或在插入时唯一

转载 作者:行者123 更新时间:2023-12-02 06:41:53 27 4
gpt4 key购买 nike

我有一个表,其中一个 int 列应该设置为零或表中不存在的值。我可以使用 CHECK CONSTRAINT 防止在此类列中插入非零重复值,还是应该使用 BEFORE INSERT 触发器?如果我可以同时使用两者,哪种设计更好?

在 .NET windows 窗体应用程序中,我们使用全局事务范围来包装保存,在这两种情况下,我都希望插入失败并且事务完全回滚,所以我不知道是否应该将在触发器内回滚,这就是为什么我宁愿尽可能尝试检查。

数据库:SQL 2008

谢谢。

最佳答案

查看 Andriy M 评论中的链接,它提到了 2008 年的一个新概念:过滤索引...

CREATE UNIQUE INDEX indexName ON tableName(columns) INCLUDE includeColumns WHERE columnName != 0

这将创建一个非 0 的唯一项的索引。

任何尝试插入重复的非零值都会破坏索引的唯一性并导致错误。

关于sql - 将列值限制为 0 或在插入时唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6414794/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com