0

私は通常、リンクされたサーバーを使用しないため、ここで何が間違っているのかわかりません。

次のようなクエリは、SQL 2000 からリンクされた foxpro サーバーに対して機能します。

EXEC('Select * from openquery(linkedServer, ''select * from linkedTable'')')

ただし、インターネットで調査すると、次のようなものも機能するはずです。

Select * from linkedserver...linkedtable

しかし、私はこのエラーを受け取ります:

Server: Msg 7313, Level 16, State 1, Line 1
Invalid schema or catalog specified for provider 'MSDASQL'.
OLE DB error trace [Non-interface error:  Invalid schema or catalog specified for the provider.].

ServerAlias.Category.Schema.TableName であるはずですが、リンク サーバーで sp_ tables _ex を実行すると、すべてのテーブルのカテゴリについて、データ ファイルがある場所へのネットワーク パスを取得するだけで、スキーマは null になります。 .

このサーバーのセットアップは正しくありませんか? それとも、私がやろうとしていることは不可能ですか?

4

3 に答える 3

1

MSDNから:

リンク サーバー上のオブジェクトを操作するときは、常に完全修飾名を使用してください。リンク サーバー内のテーブルの dbo 所有者名への暗黙的な解決はサポートされていません。

リンク サーバーの '..' 表記の暗黙的なスキーマ名解決に依存することはできません。FoxPro「サーバー」の場合、データベースとスキーマを使用する必要があります。これらは、使用するドライバーの FoxPro 対応するものにマップされるためです (フォルダーとファイル名にマップすると思いますが、ISAM ファイルは使用していません)。現在10年以上のドライバー)。

于 2009-06-10T14:01:46.080 に答える
0

クエリのリンク サーバー部分のリソースについて明示する必要があると思います。次に例を示します。

EXEC SomeLinkedServer.Database.dbo.SomeStoredProc

言い換えれば、この場合、それらを単にドットアウトするだけでは機能しません。より具体的にする必要があります。

于 2009-06-10T13:43:09.287 に答える
0

それは実際には:

ServerAlias.Catalog.Schema.LinkedTable

Catalog はリンク サーバーでクエリを実行しているデータベースであり、catalog はリモート テーブルのカタログです。したがって、有効な 4 部構成の名前は次のようになります。

ServerAlias.AdventureWorks.HumanResources.Employee

また

ServerAlias.MyDB.dbo.MyTable

于 2009-06-10T13:44:21.077 に答える