1

重複
の可能性:SQLServerで複数のNULL値を許可する一意の制約を実装する適切な方法

テーブルに列があり、すべての値が一意であるか、NULLである必要があります。

この列のテーブルに一意キーを追加しようとしましたが、これはNULL値を1つしか持てないことを意味しているようです。

NULLでない限り、すべての値が一意になるように制約を設定するにはどうすればよいですか?

4

1 に答える 1

3

SQL Server 2008には、これを可能にするフィルター処理されたインデックスがありますが、2005では使用できません。SQLServer2005では、定義を使用してインデックス付きビューを作成できます。

CREATE VIEW dbo.Foo
WITH SCHEMABINDING
AS
SELECT bar
FROM dbo.baz
WHERE bar IS NOT NULL

次に、その上に一意のクラスター化されたインデックスを作成します。

CREATE UNIQUE CLUSTERED INDEX ix ON dbo.Foo(bar)
于 2011-05-27T09:54:51.040 に答える