SQL 为引用外部文件的路径连接字符串
SQL Joining Strings for a path referencing external file
我正在尝试将一些字符串连接在一起以定义路径 - 例如,给定 $(name) = "PATH",我想要 :r .\PathOne\PATH.sql
。由于 Syntax Error
,查询在第一个 :r
处失败。如果我对路径进行硬编码,并在条件中保留 $(name)
,它会按预期工作。这只是由于某种原因失败的路径的字符串构造。
IF '$(name)' LIKE 'TEST%'
BEGIN
:r .\PathOne\'$(name)'.sql
END
IF '$(name)' NOT LIKE 'TEST%'
BEGIN
:r .\PathTwo\'$(name)'.sql
END
如何为 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
将路径的硬编码部分括在双引号内,并且您的变量没有任何space紧挨着用于构建路径的硬编码部分,例如
:setvar filename "test"
:setvar root "D:\temp"
:r $(root)"\test\"$(filename)".sql"
将产生类似
的路径
D:\temp\test\test.sql
要解决您的问题,请尝试这样的操作
:r ".\PathOne\"$(name)".sql"
希望对您有所帮助
我正在尝试将一些字符串连接在一起以定义路径 - 例如,给定 $(name) = "PATH",我想要 :r .\PathOne\PATH.sql
。由于 Syntax Error
,查询在第一个 :r
处失败。如果我对路径进行硬编码,并在条件中保留 $(name)
,它会按预期工作。这只是由于某种原因失败的路径的字符串构造。
IF '$(name)' LIKE 'TEST%'
BEGIN
:r .\PathOne\'$(name)'.sql
END
IF '$(name)' NOT LIKE 'TEST%'
BEGIN
:r .\PathTwo\'$(name)'.sql
END
如何为 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
将路径的硬编码部分括在双引号内,并且您的变量没有任何space紧挨着用于构建路径的硬编码部分,例如
:setvar filename "test"
:setvar root "D:\temp"
:r $(root)"\test\"$(filename)".sql"
将产生类似
的路径D:\temp\test\test.sql
要解决您的问题,请尝试这样的操作
:r ".\PathOne\"$(name)".sql"
希望对您有所帮助