web-dev-qa-db-ja.com

リンクされたSQLServerデータベースで「メタデータの不整合」エラーが発生する

現在、SQLServerをデータベースとして使用するサードパーティのソフトウェアスイートを実行しています。別の場所で実行されているSQLServerの2番目のインスタンスがあり、そのインスタンスで構築している一部のアプリは、サードパーティソフトウェアの一部のデータにアクセスする必要があります。そこで、ボックス間にODBC接続を作成し、サードパーティのSQLサーバーを自分のバージョンのSQL Serverでリンクサーバーとしてセットアップしました。テストとして、次のようなものを実行しました。サードパーティのテーブルの1つにアクセスする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.

このエラーは、私がアクセスしようとしている他のテーブルでも同じです。このエラーはどういう意味ですか、それを回避する方法はありますか?

15
dpmattingly

私はこれを数回経験しました。私が見つけた1つの回避策は、OPENQUERYを使用することでした。

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

また、上記で投稿した選択の4つの部分の名前が正しくありません(タイプミスの可能性がありますが、よくわかりませんでした)。そのはず LinkedServerName.DBName.SchemaName.TableName

38
BrianD
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.

4部構成の名前構文を使用して、リンクサーバーデータベースからデータをクエリすると、このエラーメッセージが表示される場合があります。この問題を回避するには、OPENQUERY構文を使用して、リンクサーバーデータベースからデータをクエリします。トレースフラグ7300をオンにすると、このエラーメッセージに関する詳細情報を受け取ることができます。トレースフラグ7300をオンにするには、次のTransact-SQLステートメントを実行します。

DBCC TRACEON(7300)
8
Raj

私はこの手順でこれを解決しました

1)ステップ1:

•SQLServer Management Studioで、[リンクサーバー]を開き、[新しいリンクサーバー]を開きます。

•表示されたウィザードの内部– [全般]タブを選択します。

•「リンクサーバー」フィールドにエイリアス名を指定します。

•プロバイダーとしてSQLNativeClientを選択します。

•[製品名]フィールドにsql_serverを追加します(これが魔法です)。

•「データソース」で–リンクサーバーとして使用するホストの名前を指定します。

2)ステップ2:

•[セキュリティ]タブ–適切なセキュリティオプション(セキュリティコンテキストなど)を指定します

3)ステップ3:

•[サーバーオプション]タブ– [データアクセス]、RPC、[Rpc出力]、[リモートコラボレーションの使用]をtrueに設定します。

4)ステップ4:

• 楽しい。

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

2