29 Ağustos 2012 Çarşamba

Bir Sql Serverdan Başka Bir Serverda ki Job'u Çalıştırmak

Farklı iki instance olsun yada farklı serverlarda bulunan sql server üzerindeki jobları diğer bir serverdan çalıştırmak bazen yapmamız gereken bir senaryo olarak karşımıza çıkabilir.

Bu durumda çalıştırılacak script aşağıdaki gibidir.

declare @remotecod int
declare @job_name varchar(300)
declare @server_name varchar(200)
declare @query varchar(8000)
declare @cmd varchar(8000)

set @job_name = 'Gunluk Islemler' --Çalıştırılacak Job ismini tırnak içerisine yazıyoruz.
set @server_name = 'GTSS11'  --Çalıştırılacak Job'ın bulunduğu diğer serverın adı yada ip si.

set @query = 'exec msdb.dbo.sp_start_job @job_name = ''' + @job_name + ''''
set @cmd = 'osql -E -S ' + @server_name + ' -Q "' + @query + '"'

exec @remotecod = master.dbo.xp_cmdshell @cmd

if @remotecod <> 0 or @retcode is null
begin
print 'xp_cmdshell @retcode = '+isnull(convert(varchar(20),@retcode),'NULL @retcode')
end

Hiç yorum yok: