这是一个学术问题,但如果我在 CMD 模式下为 SQL-Server 编写 SQL 脚本,我如何创建像 [$(myVar)] 这样的列别名?
SELECT 1 AS [$(myVar)] --error: myVar is not defined
这是一个学术问题,但如果我在 CMD 模式下为 SQL-Server 编写 SQL 脚本,我如何创建像 [$(myVar)] 这样的列别名?
SELECT 1 AS [$(myVar)] --error: myVar is not defined
在脚本中,使用 SETVAR:
或者,使用
-v
SQLCMD 命令行参数将变量值传递给脚本。有关语法,请参阅https://msdn.microsoft.com/en-us/library/ms162773.aspx SQLCMD。编辑:
请注意,这里涉及到两个解析器,SQLCMD 和 T-SQL。当值包含空格或双引号时,SQLCMD 变量值需要用双引号引起来。SQLCMD 值中的双引号使用额外的双引号进行转义:
另外,根据 SQLCMD 变量值在 T-SQL 脚本中的使用方式,还有其他注意事项。在您的示例中,该值用作标识符(列别名)并且已包含在 T-SQL 脚本中的方括号中。值中的右括号需要使用附加方括号进行转义以进行 T-SQL 解析:
在 T-SQL 字符串文字的情况下,单引号需要转义不是用于 SQLCMD,而是用于 T-SQL 解析: