我的查询看起来像这样:
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)。 步骤失败了。
答案 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)
将NT AUTHORITY \ SYSTEM用户置于sysadmin服务器角色中。
将此用户添加到具有远程用户名和密码的链接服务器登录映射中 在链接服务器属性的安全选项卡中。