0

我使用的是完全在 SQL Management Studio 中的 SQL Server 2008 R2 Web Edition。我需要进行跨服务器查询,但无论服务器是否链接,我的查询总是返回“无效的对象名称”。正如我所期望的那样,更改服务器名称会返回“找不到服务器”。

我已经使用 sp_addlinkedserver 和 sp_dropserver 多次添加和删除了链接数据库,检查了 sys.Servers 表,并尝试了各种查询排列。我的猜测是,它是另一个与链接服务器具有相同 4 部分名称语法的功能。

例如,以下返回“无效的对象名称”

SELECT TOP 10 * FROM dbtest.Web.dbo.tblProduct -- this is correct
SELECT TOP 10 * FROM dbtest.Web.dbo.tblProductFake
SELECT TOP 10 * FROM dbtest.WebFake.dbo.tblProduct

如果我故意将服务器名称更改为不正确的名称,则以下返回“找不到服务器”,正如我所料

SELECT TOP 10 * FROM dbtestFake.Web.dbo.tblProduct
SELECT TOP 10 * FROM dbtest1.Web.dbo.tblProduct
SELECT TOP 10 * FROM dbtst.Fake.dbo.tblProduct

从同一数据库对另一个链接服务器的查询要么返回结果,要么返回“链接服务器“dbx”的 OLE DB 提供程序“SQLNCLI10”不包含表”,这取决于查询是否正确,再次,正如我所期望的那样.

更奇怪的是,我可以让 Management Studio 在“服务器对象”>“链接服务器”等之后为我构建查询,然后单击“脚本表作为 SELECT 到新查询窗口”,但该查询仍将显示“无效的对象名称”。

4

0 回答 0