UNIQUE 制約の作成

SQL Server 2012 では、SQL Server Management Studio または Transact-SQL を使用して UNIQUE 制約を作成し、主キー以外の特定の列に重複した値が入力されないようにします。 UNIQUE 制約を作成すると、対応する一意なインデックスが自動的に作成されます。

このトピックの内容

  • 作業を開始する準備:

    セキュリティ

  • UNIQUE 制約を作成する方法:

    SQL Server Management Studio

    Transact-SQL

作業を開始する準備

セキュリティ

権限

テーブルに対する ALTER 権限が必要です。

[トップに戻る] リンクで使用される矢印アイコン[Top]

SQL Server Management Studio の使用

UNIQUE 制約を作成するには

  1. オブジェクト エクスプローラーで、UNIQUE 制約を追加するテーブルを右クリックし、[デザイン] をクリックします。

  2. [テーブル デザイナー] メニューの [インデックス/キー] をクリックします。

  3. [インデックス/キー] ダイアログ ボックスで、[追加] をクリックします。

  4. [全般] の下のグリッドで、[型] をクリックし、プロパティの右にあるドロップダウン リスト ボックスの [一意キー] をクリックします。

  5. [ファイル] メニューの [table name の保存] をクリックします。

[トップに戻る] リンクで使用される矢印アイコン[Top]

Transact-SQL の使用

UNIQUE 制約を作成するには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。 次の例では、TransactionHistoryArchive4 テーブルを作成して TransactionID 列に UNIQUE 制約を作成します。

    USE AdventureWorks2012;
    GO
    CREATE TABLE Production.TransactionHistoryArchive4
     (
       TransactionID int NOT NULL, 
       CONSTRAINT AK_TransactionID UNIQUE(TransactionID) 
    ); 
    GO
    

既存のテーブルに UNIQUE 制約を作成するには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。 次の例では、Person.Password テーブルの PasswordHash および PasswordSalt 列に UNIQUE 制約を作成します。

    USE AdventureWorks2012; 
    GO
    ALTER TABLE Person.Password 
    ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt); 
    GO
    

新しいテーブルに UNIQUE 制約を作成するには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。 次の例では、テーブルを作成して TransactionID 列に UNIQUE 制約を定義します。

    USE AdventureWorks2012;
    GO
    CREATE TABLE Production.TransactionHistoryArchive2
    (
       TransactionID int NOT NULL,
       CONSTRAINT AK_TransactionID UNIQUE(TransactionID)
    );
    GO
    

    詳細については、「ALTER TABLE (Transact-SQL)」、「CREATE TABLE (Transact-SQL)」、および「table_constraint (Transact-SQL)」を参照してください。

[トップに戻る] リンクで使用される矢印アイコン[Top]