如何确保SQL Server 2005中未插入非空重复值

时间:2016-01-07 17:19:49

标签: sql sql-server database sql-server-2005

我在SQL Server 2005中有一个历史数据库,用于存档来自实时数据库的数据。我需要在名为RowID INT的历史数据库中添加一列。此列不能作为标识,因为它需要存储来自实时数据库的值。

注意:在实时数据库中,RowID是标识列。最近我也在实时数据库中添加了这个专栏。

我需要确保在历史数据库中,插入此列的非空值是唯一的。据我所知,在SQL Server中,我们不能将可为空的列设置为唯一。

因此,在SQL Server 2005中,确保将non-null duplicate values插入RowID列的最有效方法是什么会引发错误?

2 个答案:

答案 0 :(得分:2)

评论太长了。是时候升级到更新版本的SQL Server了。 Microsoft将于4月(2016年)停止提供支持(请参阅here)。

从SQL Server 2008开始,您可以通过过滤的唯一索引轻松地执行所需操作:

create unique index unq_history_rowid on history(rowid) where col is not null;

答案 1 :(得分:-1)

您可以将unique constraint用于RowId