我在 SQL Server 2005
中有一个历史数据库,用于存档来自实时数据库的数据。我需要在历史数据库中添加一个名为 RowID INT 的列。此列不能作为标识,因为它需要存储来自实时数据库的值。
注意:在实时数据库中,RowID 是标识列。此列也是我最近在实时数据库中添加的。
我需要确保在历史数据库中,插入到该列中的非空值是唯一的。我知道在 SQL Server 中,我们不能使可为空的列唯一。
那么,在 SQL Server 2005 中,确保将 非 null 重复值
插入到 RowID 列中会引发错误的最有效方法是什么?
最佳答案
是时候升级到更新版本的 SQL Server 了。 Microsoft 将在 2016 年 4 月停止支持(请参阅 here)。
从 SQL Server 2008 开始,您可以使用过滤的唯一索引轻松地做您想做的事:
create unique index unq_history_rowid on history(rowid) where col is not null;
关于sql - 如何确保不在 SQL Server 2005 中插入非空重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34661354/