1

我有一张桌子

GID
ID
DefaultA
DefaultB
DefaultC
DefaultD
DefaultE
DefaultF

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

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

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

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

或者,

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

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