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 制約を作成するには
オブジェクト エクスプローラーで、UNIQUE 制約を追加するテーブルを右クリックし、[デザイン] をクリックします。
[テーブル デザイナー] メニューの [インデックス/キー] をクリックします。
[インデックス/キー] ダイアログ ボックスで、[追加] をクリックします。
[全般] の下のグリッドで、[型] をクリックし、プロパティの右にあるドロップダウン リスト ボックスの [一意キー] をクリックします。
[ファイル] メニューの [table name の保存] をクリックします。
[Top]
Transact-SQL の使用
UNIQUE 制約を作成するには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。 次の例では、TransactionHistoryArchive4 テーブルを作成して TransactionID 列に UNIQUE 制約を作成します。
USE AdventureWorks2012; GO CREATE TABLE Production.TransactionHistoryArchive4 ( TransactionID int NOT NULL, CONSTRAINT AK_TransactionID UNIQUE(TransactionID) ); GO
既存のテーブルに UNIQUE 制約を作成するには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。 次の例では、Person.Password テーブルの PasswordHash および PasswordSalt 列に UNIQUE 制約を作成します。
USE AdventureWorks2012; GO ALTER TABLE Person.Password ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt); GO
新しいテーブルに UNIQUE 制約を作成するには
オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、[実行] をクリックします。 次の例では、テーブルを作成して 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]