3

我们正在为我们的数据库创建一个模式版本。现在我们有一个带有列版本的数据库表和带有版本的单行。

是否可以在数据库而不是表上创建一个标量变量?

就像是:

SET DBNAME.dbo.DBVersion = 1;

4

3 回答 3

4

您可以考虑将标量值存储在附加到数据库的扩展属性中。

添加扩展属性使用sp_addextendedproperty

EXEC sp_addextendedproperty @name = N'DBVersion', @value = '1';

获得您的财产的价值fn_listextendedproperty

SELECT value FROM fn_listextendedproperty(N'DBVersion', default, default, default, default, default, default);

输出:

价值
-----
    1

进一步阅读:

于 2013-08-22T05:45:04.483 回答
2

当我需要在数据库中的某处存储不一定相关的常量值时,我通常会得到 dbo.Config 表,该表对于需要保存的每个成本都有一个列。

如果你真的想把它存储在表之外的某个地方,你可以考虑扩展属性、视图、函数或存储过程。

你总是可以创建一个看起来像的函数

CREATE FUNCTION dbo.GetSomeConst ()
RETURNS int
BEGIN
    return 12
END
于 2013-08-22T09:59:39.353 回答
1

对于静态(只读)数据,您还可以定义单行视图:

CREATE VIEW V_Constants AS
SELECT '1' AS DBVersion

如较早的答案中所述

于 2013-08-22T07:18:02.167 回答