0

我一直在尝试从包含多个 sql 脚本的文件夹中执行 SQL 脚本。这些脚本将创建一个完整的数据库,因此我想按顺序执行脚本,因此我编写了此代码并将其放入脚本中。

:r c:\Scripts\CREATE_TABLE1.sql -- sql file to create first table
:r c:\Scripts\CREATE_TABLE2.sql -- sql file to create second table 
:r c:\Scripts\CREATE_TABLE3.sql -- sql file to create third table

它工作正常,我只需要使文件夹名称动态化,这样我们就可以通过在顶部创建一个变量来轻松更改文件夹名称,并将其与每个文件名一起使用。我探索了一些选择,但没有找到太多,最终得到了这样的结果。但这不起作用。

Declare @FolderName varchar(100)
set @FolderName='C:\Scripts\'
:r @FolderName+'CREATE_TABLE1.sql -- create first table
:r @FolderName+'CREATE_TABLE2.sql -- create second table
:r @FolderName+'CREATE_TABLE3.sql -- create third table

但它会在文件夹名称后的第一个 r 命令附近引发错误语法。有人请告诉我如何解决它或一些解决方法?

4

1 回答 1

1

您可以使用setvar& $();

:setvar FolderName "C:\Scripts"
:r $(FolderName)\CREATE_TABLE1.sql'
:r $(FolderName)\.....
于 2013-01-08T13:46:05.757 回答