Sql 出现致命的脚本错误。未定义变量
当我在SSMS 2017和SQL Server DB中以SQLCMD模式运行此查询时。它很好用Sql 出现致命的脚本错误。未定义变量,sql,sql-server,ssms,sqlcmd,Sql,Sql Server,Ssms,Sqlcmd,当我在SSMS 2017和SQL Server DB中以SQLCMD模式运行此查询时。它很好用 --SQLCMD mode --DECLARE Global variables :SETVAR daysBack -1 SELECT $(daysBack) 结果:-1 如果我只跑一行 SELECT $(daysBack) 在同一连接的同一窗口中,或在另一选项卡中。我犯了一个错误 发生了致命的脚本错误。 未定义变量daysBack 为什么我会出错 我如何使我的varibale全球化,例如 SE
--SQLCMD mode
--DECLARE Global variables
:SETVAR daysBack -1
SELECT $(daysBack)
结果:-1
如果我只跑一行
SELECT $(daysBack)
在同一连接的同一窗口中,或在另一选项卡中。我犯了一个错误
发生了致命的脚本错误。
未定义变量daysBack
为什么我会出错
我如何使我的varibale全球化,例如
SELECT '$(COMPUTERNAME)'
我想你做不到。SQLCMD变量是一种客户端工具技巧,它们实际上并不是作为SQL Server概念存在的 当您提交新批处理时,连接和服务器不知道它们的存在,并且系统不会保留以前批处理中使用的变量的知识 发件人: 如果多个类型的变量具有相同的名称,则使用优先级最高的变量
:setvar
),这不会创建“全局”变量(实际上只是环境变量和SQLCMD内置变量)。$(COMPUTERNAME)用于所有查询。@justromagod-$(COMPUTERNAME)
正在访问COMPUTERNAME
环境变量。环境变量需要在启动客户机工具之前设置,并在其执行期间固定。在SSMS窗口内无法更改或创建新的环境变量。