2014-03-25 170 views
3

我试图在存储过程结束时在远程服务器上运行作业。无法在远程服务器上运行SQL作业

我使用这个代码

exec msdb..sp_start_job @job_name = 'MyJob', @server_name = 'divss403' 

然而,它口口声声说工作不存在

Msg 14262, Level 16, State 1, Procedure sp_verify_job_identifiers, Line 67 
The specified @job_name ('MyJob') does not exist. 

的工作肯定存在并拼写正确

我的广告帐户有权在远程服务器上执行该作业,如果我在该服务器上运行该代码,则作业开始。

我猜这是一个权利问题,但我不知道我应该在哪里寻找

+0

“如果我在该服务器上运行此代码,则启动作业。”你能解释一下你正在运行这个代码的两种方式吗? –

+0

从服务器1运行它,它无法执行服务器2上的作业。在服务器2上运行它可以在服务器2上运行该作业 –

+0

从服务器1运行 - 是否指您在本地登录服务器1,启动SSMS服务器然后通过SSMS连接到服务器2,然后运行该代码?请具体说明。 –

回答

-1

努力让你使用的是FQDN,这样添加的服务器名称:

exec remoteserverhere.msdb.dbo.sp_start_job @job_name = 'MyJob', @server_name = 'divss403' 

刚首先连接到SSMS中的远程服务器。

+0

我必须通过SSMS连接服务器吗? –

+0

添加链接服务器(Server1上的Server2)。现在,EXEC认为你想在本地服务器上运行它。 FQDN告诉MSSQL它是远程的。 – smoore4

+0

然后服务器名称参数是什么? –

0

我有这个问题。事实证明,LINKed服务器没有得到正确创建或其他东西。删除LINK服务器并再次添加它解决了这个问题。也请先尝试链接服务器>点击确定,然后转到此链接的属性以启用RPC和RPC。