当前位置:  开发笔记 > 编程语言 > 正文

你能限制(数据库)表中的行数吗?

如何解决《你能限制(数据库)表中的行数吗?》经验,为你挑选了2个好方法。

我们有一个数据库(SQL Server 2005),我们希望在源代码管理下获得它.作为其中的一部分,我们将有一个版本表来存储数据库的当前版本号.有没有办法将该表限制为只保留一行?或者将版本号存储在表中是个坏主意?

结束使用这种方法:

CREATE TABLE [dbo].[DatabaseVersion]
    (
        [MajorVersionNumber] [int]  NOT NULL,
        [MinorVersionNumber] [int]  NOT NULL,
        [RevisionNumber] [int]  NOT NULL
    )
GO

Insert DataBaseVersion (MajorVersionNumber,  MinorVersionNumber,  RevisionNumber) values (0, 0, 0)
GO

CREATE TRIGGER DataBaseVersion_Prevent_Delete
ON DataBaseVersion INSTEAD OF DELETE
AS
BEGIN
    RAISERROR ('DatabaseVersion must always have one Row. (source = INSTEAD OF DELETE)', 16, 1) 
END
GO

CREATE TRIGGER DataBaseVersion_Prevent_Insert
ON DataBaseVersion INSTEAD OF INSERT
AS
BEGIN
    RAISERROR ('DatabaseVersion must always have one Row. (source = INSTEAD OF INSERT)', 16, 1) 
END
GO

Otávio Décio.. 7

使用触发器.



1> Otávio Décio..:

使用触发器.



2> WOPR..:

对表进行概括以保持"设置"并使其成为键/值对

CREATE TABLE Settings (Key nvarchar(max), Value nvarchar(max))

然后在Key上创建一个唯一索引.

CREATE UNIQUE INDEX SettingsIDX ON Settings (Key)

这将创建一个具有唯一键值对的表,其中一个可以是Version.

INSERT INTO Settings (Key, Value) VALUES ('Version','1');

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有