我们在仓库服务器上有10个数据库(每个位置1个)和1个主数据库。这10个数据库与另一台服务器上的OLTP对应数据库相关联。我在master数据库中创建了一个存储过程,用于将数据从源移动到目标。
我没有创建游标并循环遍历所有数据库,而是试图查看是否有办法将参数传递给每个数据库的SQL Server代理作业 - 基本上有10个SQL代理作业(每个数据库1个) )
Job>中是否有办法?步骤>命令窗口为学校声明一个变量并将其传递给复制存储过程?
工作1
Declare @Source_DB varchar(max)
@Target_DB Varchar(max)
Set @Source_DB = ‘School_1’
Set @Target_DB= ‘DW_School_1’
Exec Replicate @Source_DB, @Target_DB
工作2
Declare @Source_DB varchar(max)
@Target_DB Varchar(max)
Set @Source_DB = ‘School_2’
Set @Target_DB= ‘DW_School_2’
Exec Replicate @Source_DB, @Target_DB
工作3
Declare @Source_DB varchar(max)
@Target_DB Varchar(max)
Set @Source_DB = ‘School_3’
Set @Target_DB= ‘DW_School_3’
Exec Replicate @Source_DB, @Target_DB
工作4 ...... ....
答案 0 :(得分:0)
使用sp_MSforeachdb
这样的东西DECLARE @command varchar(1000)
--SELECT @command = 'USE ? SELECT ''?'' as mainDB, ''DW_?'' as warehouseDB'
SELECT @command = 'Exec Replicate ?, ''DW_?'''
print @command
EXEC sp_MSforeachdb @command