有没有办法在不使用链接服务器的情况下从远程服务器上的另一个作业触发作业?
原因是被触发的作业在2008上执行了一个SSIS包。调用作业驻留在2005服务器上,因此无法直接执行该作业。
服务器没有链接,我希望有一种方法可以互相调用。
有没有办法在不使用链接服务器的情况下从远程服务器上的另一个作业触发作业?
原因是被触发的作业在2008上执行了一个SSIS包。调用作业驻留在2005服务器上,因此无法直接执行该作业。
服务器没有链接,我希望有一种方法可以互相调用。
在 SQL 代理中使用“cmdexec(操作系统)”类型,然后使用 dtexec \f“.....”命令行实用程序执行 SSIS 2008 包。这太棒了!
将 dtsx 文件导出到 2005 服务器框并使用 dtexec 实用程序从命令行调用 dtsx。
不确定这是否可行。创建一个调用 sp_start_job 的 http 端点
假设您有权执行 xp_cmdshell,以下代码应该可以工作。只需要替换@job_name 和@server_name 的文本。
USE master
GO
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE WITH OVERRIDE
GO
-- To disable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE WITH OVERRIDE
GO
declare @retcode int
declare @job_name varchar(300)
declare @server_name varchar(200)
declare @query varchar(8000)
declare @cmd varchar(8000)
set @job_name = 'hodes - grant user permissions' ------------------Job name goes here.
set @server_name = 'msc-dbs04' ------------------Server name goes here.
set @query = 'exec msdb.dbo.sp_start_job @job_name = ''' + @job_name + ''''
set @cmd = 'osql -E -S ' + @server_name + ' -Q "' + @query + '"'
print ' @job_name = ' +isnull(@job_name,'NULL @job_name')
print ' @server_name = ' +isnull(@server_name,'NULL @server_name')
print ' @query = ' +isnull(@query,'NULL @query')
print ' @cmd = ' +isnull(@cmd,'NULL @cmd')
exec @retcode = xp_cmdshell @cmd
if @retcode <> 0 or @retcode is null
begin
print 'xp_cmdshell @retcode = '+isnull(convert(varchar(20),@retcode),'NULL @retcode')
end
USE MASTER
GO
-- To update the currently configured value for advanced options.
RECONFIGURE WITH OVERRIDE
GO
-- To disable the feature.
EXEC sp_configure 'xp_cmdshell', 0
GO
-- To update the currently configured value for this feature.
RECONFIGURE WITH OVERRIDE
GO
-- To do not allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 0
GO
-- To update the currently configured value for advanced options.
RECONFIGURE WITH OVERRIDE
GO