19

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

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.

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

4

3 に答える 3

44

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

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

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

于 2009-07-24T18:58:20.107 に答える
8
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)
于 2009-07-24T18:45:56.107 に答える
5

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

1) ステップ 1:

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

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

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

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

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

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

2) ステップ 2:

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

3) ステップ 3:

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

4) ステップ 4:

• 楽しみ。

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

于 2015-02-12T19:31:35.447 に答える