Microsoft SQL Server Management Studio从脚本内部运行脚本

chi*_*leo 6 sql sql-server automation

我希望能够分别保存和存储一堆不同的创建表脚本.

要构建整个数据库,我将有一个master .sql文件,它按顺序调用所有脚本,以便以正确的顺序创建表中的所有外键.

然后我还可以创建一个脚本来删除整个表结构,方法是以相反的顺序删除它们.

有没有办法做到这一点?

Rem*_*anu 13

使用模糊的r:SQLCMD命令:

:r <文件名>

将指定文件中的其他Transact-SQL语句和sqlcmd命令解析为语句高速缓存.

假设您的创建脚本是createT1.sql,createT2.sql然后您的主.sql文件将是这样的:

create database foo;
go

use foo;
go

:r createT1.sql
:r createT2.sql
go
Run Code Online (Sandbox Code Playgroud)

此语法也适用于SSMS,只要启用SQLCMD模式,请参阅使用查询编辑器编辑SQLCMD脚本.如果要在应用程序中嵌入此扩展,dbutilsqlcmd库也支持:r扩展.