在SQL Server中一次执行多个.sql文件的方法

时间:2011-06-14 14:16:45

标签: sql sql-server-2008

我有大约100个.sql文件,用于创建存储过程。我想立刻执行它们。

它们包含在名为Stored Procedures的文件夹中。还有其他几个名称不同的文件夹 - 表名 - 在Stored Procedures文件夹中。

有没有办法一次执行所有这些文件?

3 个答案:

答案 0 :(得分:3)

您可以打开PowerShell实例并运行如下命令:

Get-ChildItem ".\Stored Procedures\*.sql" | ForEach-Object { sqlcmd -S ServerName -d DatabaseName -E -i $_.FullName }

这将获取Stored Procedures目录中的每个.sql文件,并逐个将其传递给sqlcmd.exe程序。要获取有关sqlcmd参数的更多详细信息,您可以运行sqlcmd /?

要使其通过子目录递归,您可以将-Recurse参数与-Filter参数一起应用于Get-ChildItem

Get-ChildItem '.\Stored Procedures' -Filter *.sql -Recurse | ForEach-Object { sqlcmd -S ServerName -d DatabaseName -E -i $_.FullName }

答案 1 :(得分:2)

以下是另一个工具 Sql_Server_Script_Executor

  

有没有办法执行所有这些   文件一次?

*您可以添加文件夹,所有文件都会出现在列表中。点击执行按钮完成!!!!!!!!!!!!! *

它包含三种交易模式。

1. Execute scripts within one transaction
2. Execute scripts on separate transaction
3. No transaction

还有更多功能请通过它。

enter image description here

答案 2 :(得分:1)

不是一次 - 但一次又一次 - 尝试像SSW Deploy一样的工具。

enter image description here