有人能帮我编写一个脚本来运行特定文件夹中的所有 SQL 文件吗?
我需要部署一堆存储过程,并且希望一次性部署所有存储过程,而不必手动运行每个存储过程。我们运行 Microsoft SQL Server 2005。
答案1
Windows 命令行处理器支持为了语句,因此您可以创建一个.cmd
类似这样的文件:
for %%f in (*.sql) do osql -U<User> -P<Pass> -S<Server> -d<Database> -i%%f
这将按顺序处理.sq
当前文件夹中的所有 l 文件(您也可以使用sql命令正如另一个答案所建议的那样)。
另外,您可以在脚本的开头直接指定数据库:
use DatabaseName
go
这go
很重要,因为某些语句(如CREATE VIEW
或)CREATE PROCEDURE
需要位于一批 SQL 命令的开头。
答案2
如果您需要按特定顺序运行它们,那么最好的解决方案就是编写一个bat
文件:
run fileA.sql
run fileB.sql
run fileZ.sql
run fileM.sql
...