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"

希望对您有所帮助