我想知道SQL Server中是否有任何规定可以将常量变量存储在某个文件中,或者像codeigniter的constants.php文件一样,可以在其中定义常量变量,并在需要时可以调用变量。
我想使用这些功能是因为我有多个视图,存储过程采用静态值,并且只要数据库中这些值发生更改,我就可以以常量更改这些值,而我的工作就完成了。我可以创建任何XML或其他文件,并在SP中调用它,并在需要时查看。
谢谢。
答案 0 :(得分:0)
这在服务器级别是不可能的,但是如果将所有视图都放在一个.SQL文件中(如果需要,可以在一个.SQL脚本中包含多个批处理),则可以执行此操作。您将需要在SSMS中使用SQLCMD模式。要启用SQLCMD模式,请转到查询> SQLCMD模式
启用了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