用于存储数据库版本信息的SQL数据库单例
我需要一个非常简单的SQL数据库-我使用SQL Server和/或SQL Compact。 我会这样写用于存储数据库版本信息的SQL数据库单例,sql,sql-server,database,singleton,Sql,Sql Server,Database,Singleton,我需要一个非常简单的SQL数据库-我使用SQL Server和/或SQL Compact。 我会这样写 public class MyApp { public static int Version = 1; } e、 我需要在SQL数据库中以单例的形式存储配置信息。 有没有比只创建一条记录的表更好的方法? 实际上,对于我目前的需要,数据库中只存储一个版本号就足够了,但它必须同时适用于SQL Server和SQL Compact数据库。一行表可能是最好的方法。通常,您会使用CHECK()约
public class MyApp
{
public static int Version = 1;
}
e、 我需要在SQL数据库中以单例的形式存储配置信息。
有没有比只创建一条记录的表更好的方法?
实际上,对于我目前的需要,数据库中只存储一个版本号就足够了,但它必须同时适用于SQL Server和SQL Compact数据库。一行表可能是最好的方法。通常,您会使用CHECK()约束来保证只有一行
create table your_table_name (
one_row integer not null unique
default 1 check (one_row = 1),
version varchar(5) not null unique
);
insert into your_table_name values (1, '0.0.0');
如果您的平台不支持CHECK()约束,但支持GRANT和REVOKE,则可以在版本表中插入一行,然后仅授予更新权限。(撤消删除和插入权限。)
如果您的平台不支持CHECK()约束,也不支持GRANT和REVOKE,但支持外键引用,则可以将上面的CHECK()约束替换为对单行表的外键引用。这并不能完全解决问题——您仍然有一个无法充分约束的单行表
如果dbms在CHECK()约束中支持正则表达式,则可以添加其他约束,以确保版本号遵循正则表达式。您还可以将“版本”拆分为几列整数,每列都有自己的约束。但是varchar(5)和varchar(7)似乎是最常见的。不幸的是,任何版本的SQL Compact都不支持检查约束。@VDohnal:谢谢。我扩展了我的答案来考虑这些限制。