SQLCMD:r 其中path是变量

| SQLCMD命令“ 0”是否支持非恒定文字路径? 例如:
setvar $(path1) \'.\\script.sql\'
:r $(path1) -- SQL01260: A fatal parser error occurred: .
:r \'$(path1)\' -- SQL01260: A fatal parser error occurred: .
:r \"$(path1)\" -- SQL01260: A fatal parser error occurred: .
    
已邀请:
  SQLCMD命令:r是否支持   非恒定文字路径? 是的您正在错误地定义变量。尝试:
:setvar path1 \"script.sql\"
:r $(path1)
另请参见MSDN上的本文。     
只是在此处发布此示例,以供其他人节省我刚刚失去的时间。 test_setvar.sql文件包含以下内容
-- :r test_setvar.sql
:reset

:setvar Name \"filename\"
print \'$(Name)\'
-- :setvar OutName \'$(Name)\'  -- NO wont work
-- :out $(OutName).txt
:r $(Name).sql  -- filename.sql exists and prints \"Hello World\"
:out $(Name).txt  -- filename.txt is created  

go
:out stdout
在此清楚说明。 注意: 带:out的多部分字符串和字段需要双引号 例如
:out \"string bit\"$(field1)\"string bit2\"$(field2)
单引号包装不能与:out一起使用。 但... 查询中需要双引号或单引号引起来。
where col.name LIKE \"%\" + \"$(SEARCH_STRING)\" + \"%\"
    
问题不在于错误列表中的VS列表文件,而在于您引用的文件。 应该在语法错误中搜索您引用的文件。对于您的示例。\\ script.sql     

要回复问题请先登录注册