我有一个SQL脚本,我需要在大约20个不同的数据库上运行.
我基本上只需要能够运行一些SQL,然后让它加载并从磁盘运行一个文件,做更多的SQL,再次运行相同的脚本,等等.
我希望创建一个基本上看起来像这样的SQL脚本:
use database1
go
exec c:\release.sql
go
use database2
go
exec c:\release.sql
go
use database3
go
exec c:\release.sql
go
Run Code Online (Sandbox Code Playgroud)
- 等等....
我在网上找了一堆,找到了一种在sqlcmd批处理文件中做类似事情的方法,但它不起作用,我也看不到如何以这种方式切换数据库.
万分感谢!
本
您可以将management studio切换到sqlcmd模式(查询菜单),然后运行脚本 :r script.sql
要在动态生成的数据库列表上执行此操作,您必须执行一些sqlcmd技巧:
我假设在这个例子中存在script.sql文件c:\temp.请注意,GO语句在脚本中很重要,否则sqlcmd解析器会混淆.
:OUT $(TEMP)\db.sql
declare @script nvarchar(max)
select @script = isnull(@script, '')
+ 'use ' + name + char(13) + char(10)
+ ':r c:\temp\script.sql' + char(13) + char(10)
from sys.databases
where name like N'%[_]db'
print @script
GO
:OUT stdout
:r $(TEMP)\db.sql
GO
!!del $(TEMP)\db.sql /s /q
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4895 次 |
| 最近记录: |