我需要在链接服务器上查询数据库,不幸的是数据库名称包含一个句点。
这失败了;
select top 10 *
FROM [LINKED_SERVER].[DATABASE_NAME.1].dbo.[TABLE_NAME]
出现此错误:
OLE DB 错误跟踪 [非接口错误:OLE DB 提供程序无法处理对象,因为该对象没有 columnsProviderName='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]
由于我无法控制对现有数据库名称的许多引用,我希望找到一种避免永久重命名数据库的解决方案。
我希望能够创建同义词或其他别名,或者找到其他方法来使其正常工作。