检查是否只存在单个记录

时间:2010-02-24 15:20:08

标签: tsql validation concept

我有一张表

GID
ID
DefaultA
DefaultB
DefaultC
DefaultD
DefaultE
DefaultF

我的要求是始终应该在数据库中有一条记录。

在前端,如果最终用户尝试更新其确定,因为他将更新现有记录。但如果他试图输入新记录,我必须阻止他。

2 个答案:

答案 0 :(得分:2)

创建主键字段,键入tinyint,然后设置约束,使得值只能为“1”(您可以在字段上使用唯一索引)。为单个记录将字段值设置为“1”。然后就不能输入其他记录了。

假设GID是主键,这里是用于将约束添加到现有表的SQL代码:

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

答案 1 :(得分:1)

消除所有插入,删除所有用户的权限......

,或者

添加一个触发器,回滚任何尝试删除或插入记录的事务。

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