无法通过SQL作业运行SQL查询

时间:2013-12-09 15:30:33

标签: sql sql-server-2008 sql-job

我的查询看起来像这样:

select tb1.col1, tb1.col2, tb2.col4, tb2.col7
from server_1.database_a.dbo.table_1 tbl1
inner join server_2.database_c.dbo.table_2 tbl2 on tbl1.col_id = tbl2.col_id

当我从Microsoft SQL Server Management Studio内手动执行时,此查询运行正常(我必须在sql server上创建链接以链接2台服务器以使查询正常工作)。但是当我尝试创建一个每天执行一次此查询的sql作业时,我收到以下错误消息并且查询未执行

  

以用户身份执行:NT AUTHORITY \ SYSTEM。对象名称   'server_1.database_a.dbo.table_1'包含的内容超过了最大值   前缀数量。最大值为2. [SQLSTATE 42000](错误117)。   步骤失败了。

3 个答案:

答案 0 :(得分:1)

试一试:

use database_a;
select tb1.col1, tb1.col2, tb2.col4, tb2.col7
from dbo.table_1 tbl1
inner join server_2.database_c.dbo.table_2 tbl2 on tbl1.col_id = tbl2.col_id

答案 1 :(得分:0)

server_1.database_1.dbo.table_1这与你先写的不一样。它的: server_1.database_a.dbo.table_1可能就是这个原因。

答案 2 :(得分:0)

  1. 将NT AUTHORITY \ SYSTEM用户置于sysadmin服务器角色中。

  2. 将此用户添加到具有远程用户名和密码的链接服务器登录映射中 在链接服务器属性的安全选项卡中。