我在一个文件夹中有一堆脚本,我必须按顺序运行 。我只是在SSMS中打开它并逐个执行。我必须等待其中一个完成然后运行第二个。
我有没有办法在SSMS中创建一个批处理脚本或脚本(如果可能的话),它将逐个浏览文件?这样可以节省我的时间,因为我可以在脚本运行时执行其他操作并防止出错(大多数都依赖于连续创建的临时表)。
我认为使用sqlcmd
的批处理脚本是我正在寻找的,但不知道如何完成此任务。
谢谢。
答案 0 :(得分: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