1

私はテーブルを持っています

GID
ID
DefaultA
DefaultB
DefaultC
DefaultD
DefaultE
DefaultF

私の要件は、データベースには常に1つのレコードが存在する必要があるということです。

フロントエンドでは、エンドユーザーが既存のレコードを更新するため、OKを更新しようとすると、新しいレコードを入力しようとすると、停止する必要があります。

4

2 に答える 2

2

主キーフィールドを作成し、tinyintと入力し、値が「1」のみになるように制約を設定します(つまり、フィールドに一意のインデックスを使用できます)。単一レコードのフィールド値を「1」に設定します。その後、他のレコードを入力することはできません。

GIDが主キーであると仮定すると、既存のテーブルに制約を追加するためのSQLコードは次のとおりです。

ALTER TABLE dbo.address ADD CONSTRAINT
  single_record CHECK (GID = 1)
于 2010-02-24T15:24:47.360 に答える
1

Eliminate all Insert, delete permissions from all users...

or,

Add a trigger that rolls back any transaction that attempts to delete or insert a record.

Create Trigger MyTableEnsureSingleRowTrigger 
On MyTable for Insert, Delete 
As Rollback Transaction
于 2010-02-24T15:29:57.037 に答える