SQL Server 2005 の既存のテーブルに一意の制約を作成するにはどうすればよいですか?
TSQL とデータベース ダイアグラムでの実行方法の両方を探しています。
SQL Server 2005 の既存のテーブルに一意の制約を作成するにはどうすればよいですか?
TSQL とデータベース ダイアグラムでの実行方法の両方を探しています。
SQL コマンドは次のとおりです。
ALTER TABLE <tablename> ADD CONSTRAINT
<constraintname> UNIQUE NONCLUSTERED
(
<columnname>
)
ここで完全な構文を参照してください。
データベース ダイアグラムから実行する場合:
SQL Server Management Studio Express の場合:
ALTER TABLE [TableName] ADD CONSTRAINT [constraintName] UNIQUE ([columns])
警告:一意に設定した列に含めることができるnull行は1つだけです。
これは、SQL2008のフィルター処理されたインデックスを使用して実行できます。
CREATE UNIQUE NONCLUSTERED INDEX idx_col1
ON dbo.MyTable(col1)
WHERE col1 IS NOT NULL;
回答の範囲でNULLでない限り、フィールド値は一意である必要がありますを参照してください。
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
<namingconventionconstraint> UNIQUE NONCLUSTERED
(
<columnname>
) ON [PRIMARY]
また、データベース図を介してこれを行うことができることもわかりました。
テーブルを右クリックし、[インデックス/キー...] を選択します。
[追加] ボタンをクリックし、列を一意にしたい列に変更します。
変更ははいに固有です。
[閉じる] をクリックしてダイアグラムを保存すると、ダイアグラムがテーブルに追加されます。
テーブルがすでに作成されている場合に、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 でサポートされているクエリ。
管理スタジオの図でテーブルを選択し、必要に応じて右クリックして新しい列を追加し、列を右クリックして [制約のチェック] を選択すると、追加できます。