我目前运行的是第三方软件套件,它使用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.
这个错误对于我试图访问的任何其他表都是相同的。这个错误意味着什么,有什么方法可以解决它吗?
3条答案
按热度按时间5w9g7ksd1#
如果使用由四部分组成的名称语法查询链接服务器数据库中的数据,则可能收到此错误消息。若要解决此问题,可以使用OPENQUERY语法查询链接服务器数据库中的数据。可以打开跟踪标志7300以接收有关此错误消息的更详细信息。若要打开跟踪标志7300,请运行以下Transact-SQL语句:
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
piv4azn73#
我遇到过几次这样的情况,我找到的一个变通方法是使用OPENQUERY。
另外,你上面发布的选择有一个不正确的4部分名称(可能只是一个打字错误,但我不确定)。它应该是
LinkedServerName.DBName.SchemaName.TableName