次の方法で共有


一意の制約を作成する

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

このトピックについて

開始する前に

安全

権限

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

SQL Server Management Studio の使用

一意制約を作成するには

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

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

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

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

  5. [ファイル] メニューの [<テーブル名> を保存] をクリックします。

Transact-SQL の使用

一意制約を作成するには

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

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

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

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

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

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

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

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

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

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

  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) を参照してください。