链接的SQL Server数据库出现“元数据不一致”错误

r9f1avp5  于 2022-12-22  发布在  SQL Server
关注(0)|答案(3)|浏览(729)

我目前运行的是第三方软件套件,它使用SQL Server作为数据库。我在另一个位置运行了第二个SQL Server示例,我在该示例SQL Server中构建的一些应用程序需要访问第三方软件中的一些数据。因此,我在两个设备之间创建了ODBC连接。并将第三方SQL Server设置为我的SQL Server版本上的链接服务器。作为测试,我从我的SQL Server运行了类似以下语句的内容,访问第三方的一个表:

SELECT * FROM LinkedServerName.SchemaName.dbo.TableName

我收到这个错误:

OLE DB error trace [Non-interface error:  Column 'TableRowVersion' (compile-time
ordinal 4) of object '"SchemaName"."dbo"."TableName"' was reported to have a
DBCOLUMNFLAGS_ISROWVER of 0 at compile time and 512 at run time].

Msg 7356, Level 16, State 1, Line 1

OLE DB provider 'MSDASQL' supplied inconsistent metadata for a column. Metadata
information was changed at execution time.

这个错误对于我试图访问的任何其他表都是相同的。这个错误意味着什么,有什么方法可以解决它吗?

5w9g7ksd

5w9g7ksd1#

Server: Msg 7356, Level 16, State 1, Line 1 

OLE DB provider 'MSDASQL' supplied inconsistent metadata for a column. 
Metadata information was changed at execution time.

如果使用由四部分组成的名称语法查询链接服务器数据库中的数据,则可能收到此错误消息。若要解决此问题,可以使用OPENQUERY语法查询链接服务器数据库中的数据。可以打开跟踪标志7300以接收有关此错误消息的更详细信息。若要打开跟踪标志7300,请运行以下Transact-SQL语句:

DBCC TRACEON(7300)
wwtsj6pe

wwtsj6pe2#

我通过以下步骤解决了这个问题:

1)第1步:

·在SQL Server Management Studio中,打开链接服务器,然后打开“新建链接服务器”。
·在显示的向导内部-选择“常规”选项卡。
·在“链接服务器”字段中指定别名。
·选择SQL Native Client作为提供程序。
·在“产品名称”字段中添加sql_server(这很神奇)。
·在数据源中-指定要用作链接服务器的主机的名称。

2)第2步:

·在安全选项卡中-指定适当的安全选项(例如安全上下文)

3)第三步:

·在服务器选项选项卡中-将“数据访问”、RPC、“RPC输出”和“使用远程排序规则”设置为真。

4)第4步:

·享受。
http://alexpinsker.blogspot.com.br/2007/08/how-to-give-alias-to-sql-linked-server.html

piv4azn7

piv4azn73#

我遇到过几次这样的情况,我找到的一个变通方法是使用OPENQUERY。

SELECT * FROM OPENQUERY(LinkedServerName, 'SELECT * FROM DBName.Schema.Table')

另外,你上面发布的选择有一个不正确的4部分名称(可能只是一个打字错误,但我不确定)。它应该是LinkedServerName.DBName.SchemaName.TableName

相关问题