SQL加入字符串引用外部文件的路径
问题描述:
我试图加入一些字符串来定义一个路径 - 例如,给出$(name)=“PATH”,我想要:r .\PathOne\PATH.sql
。由于Syntax Error
,查询在第一个:r
失败。如果我硬编码路径,并且在条件中保留$(name)
,它将按预期工作。这只是由于某种原因失败的路径的字符串结构。SQL加入字符串引用外部文件的路径
IF '$(name)' LIKE 'TEST%'
BEGIN
:r .\PathOne\'$(name)'.sql
END
IF '$(name)' NOT LIKE 'TEST%'
BEGIN
:r .\PathTwo\'$(name)'.sql
END
我如何去在SQL路径将字符串连接?命名文件直接起作用。
答
附上路径的双引号内的硬编码的零件和您的变量,而旁边的构建路径硬编码部分的任何空间,例如
:setvar filename "test"
:setvar root "D:\temp"
:r $(root)"\test\"$(filename)".sql"
将导致路径一样
d:\ TEMP \测试\ TEST.SQL
至R esolve您的问题尝试这样的事情
:r ".\PathOne\"$(name)".sql"
希望这有助于
答
我知道它可能听起来不直观,但可以尝试将路径放在双引号中,如下所示。这适用于我的机器。如果没有双引号,我会和你一样失败。
:setvar name "test"
if '$(name)' like 'test%'
begin
:r "c:\temp\test1\"$(name).sql
end
else if '$(name)' not like 'test%'
begin
:r "c:\temp\test2\"$(name).sql
end
你确定你的查询窗口设置为SQLCMD模式?你是什么定义了名称变量? –
请提供所需的结果和您得到的结果 – FLICKER
@AaronBertrand是的 - 这是定义和工作在其他地方,只是不在字符串结构。 – RobVious