使sql server脚本文件夹名称动态化

时间:2013-01-08 13:28:15

标签: sql-server dynamic

我一直在尝试从包含许多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命令附近引发错误的错误语法。有人请告诉我如何解决它或解决一些问题?

1 个答案:

答案 0 :(得分:1)

您可以使用setvar& $();

:setvar FolderName "C:\Scripts"
:r $(FolderName)\CREATE_TABLE1.sql'
:r $(FolderName)\.....