有什么方法可以在Sql Server中声明常量文件?

时间:2020-08-15 11:32:11

标签: sql-server

我想知道SQL Server中是否有任何规定可以将常量变量存储在某个文件中,或者像codeigniter的constants.php文件一样,可以在其中定义常量变量,并在需要时可以调用变量。

我想使用这些功能是因为我有多个视图,存储过程采用静态值,并且只要数据库中这些值发生更改,我就可以以常量更改这些值,而我的工作就完成了。我可以创建任何XML或其他文件,并在SP中调用它,并在需要时查看。

谢谢。

2 个答案:

答案 0 :(得分:0)

这在服务器级别是不可能的,但是如果将所有视图都放在一个.SQL文件中(如果需要,可以在一个.SQL脚本中包含多个批处理),则可以执行此操作。您将需要在SSMS中使用SQLCMD模式。要启用SQLCMD模式,请转到查询> SQLCMD模式

enter image description here

启用了SQLCMD模式后,您可以在SQL脚本的顶部定义常量/变量,并在.SQL文件的各个视图中使用它们。

定义变量/常量

:setvar cons1 10
:setvar cons2 20

并使用它们

$(cons1)
$(cons2)

答案 1 :(得分:0)

“常量文件”实际上是键/值对的列表

const key = "value"

翻译成SQL,键/值对的列表是一个表

Key varchar() [UK]
IntValue int null
StringValue nvarchar() null

等支持的数据类型。

使用引用值

SELECT [ValueColumn] FROM [SettingsTable] WHERE Key = '[Key]'

由于结果是可为空的标量,因此可以使用此表达式在子SELECT中读取“常量”值。

如果您的常量确实是真正的常量,则还可以将视图定义为

CREATE VIEW V_SystemConstants AS
SELECT 42 AS TheAnswer