0

SQL Server 2014 Express を使用して null を許可する一意の制約を設定したいと考えています。これは以前に尋ねられたことは知っていますが、この投稿では5年前に尋ねられました。

null も許可する一意の制約を作成するにはどうすればよいですか?

SQL の勉強を始めたばかりなので、5 年前から他のオプションが利用可能になっているかどうかを確認したいと考えています。

Unique Filtered Index の使用を検討していますが、可能であればこの Index を使用する必要は避けたいと考えています。

ありがとうございました。

4

1 に答える 1

0

リンクした質問への回答は引き続き適用され、正しく、これまでのところ他の方法はないようです。

2007 年以降、Microsoft Connect にはチケットがあります。そことここで提案されているように、最適なオプションは、フィルター処理されたインデックスまたは計算列を使用することです。

CREATE TABLE [Orders] (
  [OrderId] INT IDENTITY(1,1) NOT NULL,
  [TrackingId] varchar(11) NULL,
  ...
  [TrackingIdUnique] AS (
      CASE WHEN [TrackingId] IS NULL
      THEN '#' + cast([OrderId] as varchar(12))
      ELSE [TrackingId_Unique] END
  ),
  CONSTRAINT [UQ_TrackingIdUnique] UNIQUE ([TrackingIdUnique])
)
于 2015-02-26T13:00:56.077 に答える