Sql server 在链接的SQL Server上查询名称为句点的数据库

Sql server 在链接的SQL Server上查询名称为句点的数据库,sql-server,tsql,sql-server-2005,Sql Server,Tsql,Sql Server 2005,我需要查询链接服务器上的数据库,不幸的是,数据库名称包含句点 这是失败的 select top 10 * FROM [LINKED_SERVER].[DATABASE_NAME.1].dbo.[TABLE_NAME] 出现此错误时: OLE DB错误跟踪[非接口错误:OLE DB提供程序无法处理该对象,因为该对象没有列ProviderName='SQLOLEDB',Query=“DATABASE_NAME.1”。“dbo”。“TABLE_NAME”。 信息7357,16级,状态2,第2行

我需要查询链接服务器上的数据库,不幸的是,数据库名称包含句点

这是失败的

select top 10 * 
FROM [LINKED_SERVER].[DATABASE_NAME.1].dbo.[TABLE_NAME] 
出现此错误时:

OLE DB错误跟踪[非接口错误:OLE DB提供程序无法处理该对象,因为该对象没有列ProviderName='SQLOLEDB',Query=“DATABASE_NAME.1”。“dbo”。“TABLE_NAME”。
信息7357,16级,状态2,第2行
无法处理对象“DATABASE_NAME.1”、“dbo”、“TABLE_NAME”。OLE DB提供程序“SQLOLEDB”指示对象没有列

连接到同一个链接的服务器时,数据库名称中没有句号即可工作

select top 10 * 
FROM [LINKED_SERVER].[DATABASE_NAME].dbo.[TABLE_NAME] 
由于有许多对现有数据库名称的引用超出了我的控制,我希望找到一种解决方案,避免永久性地重新命名数据库


我希望能够创建同义词或其他别名,或者找到其他方法来实现此功能。

通过链接服务器访问的数据库名称中的句点在使用括号[]进行转义时完全可以接受-您得到的错误必须是其他错误

我可以在我的试验台上确认这一点:


一个想法是,您在链接服务器上使用旧的
SQLOLEDB
提供程序,您是否尝试过使用
SQLNCLI10
避免标识符中的句点

e、 g.在SSMS中

sp_help [sales.order] 
即使使用括号,也不起作用