我们有一个数据库(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
使用触发器.
使用触发器.
对表进行概括以保持"设置"并使其成为键/值对
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');