SQL Server中是否有标量数据库变量?

时间:2013-08-22 04:26:45

标签: sql-server tsql database-design

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

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

类似的东西:

SET DBNAME.dbo.DBVersion = 1;

3 个答案:

答案 0 :(得分: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);

输出:

Value
-----
    1

进一步阅读:

答案 1 :(得分:2)

当我需要在数据库中的某个地方存储常量值时,我们通常最终会得到dbo.Config表,该表对于每个需要保留的成本都有一列。

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

您始终可以创建一个类似于

的功能
CREATE FUNCTION dbo.GetSomeConst ()
RETURNS int
BEGIN
    return 12
END

答案 2 :(得分:1)

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

CREATE VIEW V_Constants AS
SELECT '1' AS DBVersion

在之前的answer

中草绘