181

SQL Server 2005 の既存のテーブルに一意の制約を作成するにはどうすればよいですか?

TSQL とデータベース ダイアグラムでの実行方法の両方を探しています。

4

10 に答える 10

273

SQL コマンドは次のとおりです。

ALTER TABLE <tablename> ADD CONSTRAINT
            <constraintname> UNIQUE NONCLUSTERED
    (
                <columnname>
    )

ここで完全な構文を参照してください。

データベース ダイアグラムから実行する場合:

  • テーブルを右クリックし、[インデックス/キー] を選択します。
  • [追加] ボタンをクリックして、新しいインデックスを追加します
  • 右側のプロパティに必要な情報を入力します。
    • 必要な列 (省略記号ボタンをクリックして選択します)
    • [一意] を [はい] に設定
    • それに適切な名前を付けます
于 2008-09-15T17:53:53.600 に答える
84

SQL Server Management Studio Express の場合:

  • テーブルを右クリックし、[変更] または [デザイン] を選択します(以降のバージョンの場合)
  • フィールドを右クリックし、[インデックス/キー... ] を選択します。
  • [追加] をクリックします
  • [列]で、一意にするフィールド名を選択します。
  • [タイプ] で [一意のキー]を選択します。
  • [閉じる]をクリックし、テーブルを保存します。
于 2009-08-21T18:32:39.087 に答える
29
ALTER TABLE [TableName] ADD CONSTRAINT  [constraintName] UNIQUE ([columns])
于 2008-09-15T17:45:34.163 に答える
15

警告:一意に設定した列に含めることができるnull行は1つだけです。

これは、SQL2008のフィルター処理されたインデックスを使用して実行できます。

CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;

回答の範囲でNULLでない限り、フィールド値は一意である必要がありますを参照してください。

于 2009-02-11T16:58:58.480 に答える
13
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
            <namingconventionconstraint> UNIQUE NONCLUSTERED
    (
                <columnname>
    ) ON [PRIMARY]
于 2008-09-15T17:39:29.547 に答える
10

また、データベース図を介してこれを行うことができることもわかりました。

テーブルを右クリックし、[インデックス/キー...] を選択します。

[追加] ボタンをクリックし、列を一意にしたい列に変更します。

変更ははいに固有です。

[閉じる] をクリックしてダイアグラムを保存すると、ダイアグラムがテーブルに追加されます。

于 2008-09-15T17:43:57.367 に答える
8

次のようなものを探しています

ALTER TABLE dbo.doc_exz
ADD CONSTRAINT col_b_def
UNIQUE column_b

MSDN ドキュメント

于 2008-09-15T17:42:11.020 に答える
7

テーブルがすでに作成されている場合に、1 つまたは複数の列に UNIQUE 制約を作成するには、次の SQL を使用します。

ALTER TABLE TableName ADd UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

上記のクエリに対して UNIQUE 制約の命名を許可するには

ALTER TABLE TableName ADD CONSTRAINT un_constaint_name UNIQUE (ColumnName1,ColumnName2, ColumnName3, ...)

MySQL / SQL Server / Oracle / MS Access でサポートされているクエリ。

于 2014-12-01T07:11:04.857 に答える
5

管理スタジオの図でテーブルを選択し、必要に応じて右クリックして新しい列を追加し、列を右クリックして [制約のチェック] を選択すると、追加できます。

于 2008-09-15T17:42:56.853 に答える