链接的SQL Server数据库给予“元数据不一致”的错误(Linked SQL Server da

2019-06-26 17:53发布

我目前正在运行的第三方软件套件,它使用SQL Server作为其数据库。 我有一个不同的位置运行SQL Server的第二个实例,以及一些应用程序,我建立在该实例SQL服务器需要访问在第三方软件的一些数据。 所以,我创建了箱之间的ODBC连接,并成立了第三方SQL服务器上我的SQL Server版本的链接服务器。 作为测试,我跑了类似的东西从我的SQL服务器下面的语句,访问第三方的一个表:

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.

此错误是任何其他表我试图访问相同。 这个错误是什么意思,是有办法解决它?

Answer 1:

我有这种情况发生过几次。 一个解决办法,我发现是使用OPENQUERY。

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

另外,你上面贴的选择有一个不正确的4部分组成的名称(可能只是一个错字,但我不知道)。 它应该是LinkedServerName.DBName.SchemaName.TableName



Answer 2:

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)


Answer 3:

我解决了这个这个步骤

1)步骤1:

•在SQL Server Management Studio中打开链接服务器,然后“新建链接服务器”。

•内部出现向导 - 选择常规选项卡。

•在“链接服务器”字段中指定别名。

•选择SQL Native Client作为供应商。

•在“产品名称”字段中添加SQL_SERVER(这是魔法)。

•在“数据源” - 指定的主机的名称用作链接服务器。

2)步骤2:

•在安全选项卡 - 指定正确的安全选项(如安全性上下文)

3)步骤3:

•在服务器选项选项卡 - 把“数据访问”,RPC的“RPC out”和“使用远程协作”是真实的。

4)步骤4:

• 请享用。

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



文章来源: Linked SQL Server database giving “inconsistent metadata” error