2010-02-24 86 views
1

我有檢查單隻存在記錄

GID 
ID 
DefaultA 
DefaultB 
DefaultC 
DefaultD 
DefaultE 
DefaultF 

我的要求的表是有至少應該有一個記錄在數據庫中始終。

在前端,如果最終用戶試圖更新它的確定,因爲如果他試圖進入一個新的紀錄,我必須阻止他,他將更新現有record.But。

回答

1

消除所有插入,刪除權限...

,或者

添加一個回滾試圖刪除或插入一條記錄的任何事務的觸發器。

Create Trigger MyTableEnsureSingleRowTrigger 
On MyTable for Insert, Delete 
As Rollback Transaction 
2

創建一個主鍵字段,輸入tinyint,並設置約束,以便該值只能是「1」(您可以在字段上使用唯一索引)。你單條記錄設置字段值設置爲「1」。然後沒有其他的記錄可以被輸入。

假設GID是主鍵,這裏是SQL代碼來約束添加到現有表:從所有用戶

ALTER TABLE dbo.address ADD CONSTRAINT 
    single_record CHECK (GID = 1)