代码之家  ›  专栏  ›  技术社区  ›  abmv

检查是否只存在单个记录

  •  1
  • abmv  · 技术社区  · 14 年前

    我有张桌子

    GID
    ID
    DefaultA
    DefaultB
    DefaultC
    DefaultD
    DefaultE
    DefaultF
    

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

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

    2 回复  |  直到 14 年前
        1
  •  1
  •   Charles Bretana    14 年前

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

    或者,

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

    Create Trigger MyTableEnsureSingleRowTrigger 
    On MyTable for Insert, Delete 
    As Rollback Transaction
    
        2
  •  2
  •   Ray    14 年前

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

    假设gid是主键,下面是向现有表添加约束的SQL代码:

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