Sql-Server

唯一列是否可以包含多個空值 SQL Server 2008

  • December 7, 2021

我想將 Oracle 表 A 中包含的數據遷移到 SQL Server。表 A 包含具有唯一約束但有多個空值的列*CIN 。*問題是 SQL Server 拒絕數據。有什麼解決方法嗎?

您可以使用過濾索引從考慮唯一性的考慮中刪除 NULL 值。您將首先刪除現有的UNIQUE CONSTRAINT,然後將其替換為UNIQUE INDEX. 這兩個對象本質上是相同的,因為 aUNIQUE CONSTRAINT通過 a 實際存在UNIQUE INDEX(用於創建列約束的文件UNIQUE狀態是“通過使用唯一索引為指定列或列提供實體完整性的約束。”)。

CREATE UNIQUE NONCLUSTERED INDEX index_name
ON SchemaName.TableA (CIN ASC)
WHERE [CIN] IS NOT NULL;

引用自:https://dba.stackexchange.com/questions/81291