2

我在一个文件夹中有一堆脚本,我必须按顺序运行。我只是在 SSMS 中打开它并一一点击执行。我必须等待其中一个完成然后运行第二个。

有没有办法让我在 SSMS 中创建一个批处理脚本或一个脚本(如果可能的话),它将一个一个地遍历文件?这将节省我的时间,因为我可以在脚本运行时做其他事情并防止错误(它们中的大多数依赖于连续创建的临时表)。

我认为我正在寻找一个批处理脚本,sqlcmd但不知道如何完成这项任务。

谢谢你。

4

1 回答 1

2

为此很容易组合一个批处理文件。将以下内容放入文本文件中,但以 .bat 结尾,例如“ExecuteMyScripts.bat”

Sqlcmd 接受各种参数,但主要的参数是 -S 用于服务器实例,-d 用于数据库,-i 用于输入文件,即您的 SQL 文件,-U 用于用户,-P 用于密码,-o 用于输出文件。注意字母的大小写。

所以打开记事本并添加以下内容:

sqlcmd -S mysqlserver -d mydb -U sa -P pass1 -i "c:\script1.sql" -o "c:\script1log.txt"
IF ERRORLEVEL 1 goto :eof
sqlcmd -S mysqlserver -d mydb -U sa -P pass1 -i "c:\script2.sql" -o "c:\script2log.txt"
IF ERRORLEVEL 1 goto :eof
sqlcmd -S mysqlserver -d mydb -U sa -P pass1 -i "c:\scripr3.sql" -o "c:\script3log.txt"

将文件另存为 ExecuteMyScripts.bat。双击该文件,两个脚本都将被执行。

如果发现错误,在每个 sqlcmd 调用之后添加 'IF ERRORLEVEL 1 goto :eof' 将跳转到脚本的末尾。

在这里找到完整的用法, http: //msdn.microsoft.com/en-us/library/ms162773.aspx

于 2012-05-16T19:24:22.460 回答