我有大约100个.sql文件,用于创建存储过程。我想立刻执行它们。
它们包含在名为Stored Procedures
的文件夹中。还有其他几个名称不同的文件夹 - 表名 - 在Stored Procedures
文件夹中。
有没有办法一次执行所有这些文件?
答案 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
还有更多功能请通过它。
答案 2 :(得分:1)
不是一次 - 但一次又一次 - 尝试像SSW Deploy一样的工具。