複数のSQL Server列にわたって一意性を施行
多くの場合、データベースの整合性には、複数の列値に基づいて重複する行を防ぐ必要があります。この記事では、表のPersonNumber
列とActive
の列全体に一意の制約を実施する方法を示しています。
一意の制約を実装するPerson
既存の重複エントリを削除した後、これらの方法のいずれかを使用して制約を適用します。
ステートメント:
ALTER TABLE
<code class="language-sql">ALTER TABLE dbo.Person ADD CONSTRAINT uq_Person_NumberActive UNIQUE (PersonNumber, Active);</code>
CREATE UNIQUE INDEX
代替アプローチと最適化
<code class="language-sql">CREATE UNIQUE INDEX uq_Person_NumberActive ON dbo.Person (PersonNumber, Active);</code>
パフォーマンス:プロアクティブな重複チェック
挿入を試みることは、
ブロック内の例外を回避することでパフォーマンスを改善することができます。TRY...CATCH
INSTEAD OF
この例は、アクションの固有の制約を示しています:
INSTEAD OF
これにより、を実際のスキーマとテーブル名に置き換えることを忘れないでください。
以上がSQL Server の複数の列にわたって一意の制約を適用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。