我是SQL Server的新手。我有一个问题:我有3个SQL服务器,域Domain1上有2个,Domain2上有1个。
我的Windows身份验证是所有3台服务器上所有Windows服务器和SQL Server上的Admin。我正在尝试在SELECT
上运行SQLServer_1
查询,以SQLServer_3
作为中间跳转点(在SQLServer_2
和{之间直接连接)从SQLServer_1
检索数据{1}}遗憾的是没有选项)
我已尝试在SQLServer_3
上运行这些查询:
SQLServer_1
但是我收到了这个错误:
对象名称“SQLServer_2.SQLServer_3.DBName_1.Table_Name1”包含的前缀数量超过最大数量。最大值为3。
SELECT *
FROM [SQLServer_2].[SQLServer_3].[DBName_1].[Table_Name1]
结果:
在sys.servers中找不到服务器'SQLServer_3'。验证是否指定了正确的服务器名称。如有必要,执行存储过程sp_addlinkedserver以将服务器添加到sys.servers。
所以两者都不起作用。
请帮助。它甚至可能吗?
答案 0 :(得分:1)
谢谢ZLK 23.他的建议奏效了。我不知道如何发布它 作为答案,如果有人请帮助我。
也许在第二台服务器上使用OPENQUERY
在第三台服务器上运行查询?例如在服务器1上从openquery中选择*(server2,' select * from server3.database.schema.table;');或者,您可以考虑从server1在server2(连接到server3)上执行存储过程。 - ZLK 23小时前
我从SQLServer_1运行此查询。据我所知,它运行查询 在SQLServer_2上选择第二个参数中的SELECT QUERY和 检索结果。这对我来说很完美。
SELECT * FROM OPENQUERY(SQLSERVER_2,'SELECT * FROM 'SQLSERVER_3.DBNAME.TABLENAME')
再次感谢你。