ホームページ > データベース > mysql チュートリアル > SQL Server テーブルで isDefault = 1 を持つレコードが 1 つだけであることを確認する方法

SQL Server テーブルで isDefault = 1 を持つレコードが 1 つだけであることを確認する方法

Mary-Kate Olsen
リリース: 2025-01-01 03:20:10
オリジナル
167 人が閲覧しました

How to Ensure Only One Record Has isDefault = 1 in a SQL Server Table?

デフォルトとしてマークされた 1 つのレコードのみに対する制約

テーブルに制約を設定して、レコードの isDefault ビット フィールドは次のように設定されています。 1?

解決策: 一意のフィルター インデックスの使用

SQL Server 2008 以降では、一意のフィルター インデックスを使用できます。

CREATE UNIQUE INDEX IX_TableName_FormID_isDefault
ON TableName(FormID)
WHERE isDefault = 1
ログイン後にコピー

テーブルは次のように定義されています

CREATE TABLE TableName(
    FormID INT NOT NULL,
    isDefault BIT NOT NULL
)
ログイン後にコピー

同じ FormID と isDefault を 1 に設定して複数の行を挿入すると、次のエラーが発生します:

Cannot insert duplicate key row in object 'dbo.TableName' with unique
index 'IX_TableName_FormID_isDefault'. The duplicate key value is (1).
ログイン後にコピー

以上がSQL Server テーブルで isDefault = 1 を持つレコードが 1 つだけであることを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート