SQL Server Management Studio または Transact-SQL を使用して、SQL Server 2014 で一意の制約を作成し、主キーに関与しない特定の列に重複する値が入力されないようにすることができます。 UNIQUE 制約を作成すると、対応する一意なインデックスが自動的に作成されます。
このトピックについて
作業を開始する準備:
一意制約を作成するには、次を使用します。
開始する前に
安全
権限
テーブルに対する ALTER 権限が必要です。
SQL Server Management Studio の使用
一意制約を作成するには
オブジェクト エクスプローラーで、一意の制約を追加するテーブルを右クリックし、[デザイン] をクリックします。
[テーブル デザイナー] メニューの [インデックス/キー]をクリックします。
[ インデックス/キー ] ダイアログ ボックスで、[ 追加] をクリックします。
[ 全般] の下のグリッドで、[ 種類 ] をクリックし、プロパティの右側にあるドロップダウン リスト ボックスから [ 一意のキー ] を選択します。
[ファイル] メニューの [<テーブル名> を保存] をクリックします。
Transact-SQL の使用
一意制約を作成するには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
標準バーで [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 次の例では、
TransactionHistoryArchive4
テーブルを作成してTransactionID
列に UNIQUE 制約を作成します。USE AdventureWorks2012; GO CREATE TABLE Production.TransactionHistoryArchive4 ( TransactionID int NOT NULL, CONSTRAINT AK_TransactionID UNIQUE(TransactionID) ); GO
既存のテーブルに一意制約を作成するには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
標準バーで [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 次の例では、
PasswordHash
テーブルのPasswordSalt
およびPerson.Password
列に UNIQUE 制約を作成します。USE AdventureWorks2012; GO ALTER TABLE Person.Password ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt); GO
新しいテーブルに一意制約を作成するには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
標準バーで [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 次の例では、テーブルを作成して
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) を参照してください。