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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-01 03:20:10185ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。