0

ServerX にセットアップされたデータベース接続マネージャーがあります。ServerX では、ServerY と呼ばれるリンク サーバーがセットアップされています。

このクエリを ServerX で実行すると、動作します

select * from 
[Serverx].[database1].[dbo].[Table1] A
left join [Servery].[database2].[dbo].[Table2] B
on A.[DNum]=B.[DNum]

ServerXではなくPCにあるSSISパッケージのSQL実行タスクに入れました。実行すると、次のエラーが発生します。

タスク 10 h でのエラー - 不足している取引を確認します [OLE DB ソース [1]]: SSIS エラー コード DTS_E_OLEDBERROR。OLE DB エラーが発生しました。エラー コード: 0x80040E14。OLE DB レコードが利用可能です。ソース: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E14 説明: "リンク サーバー "Server_Y" の OLE DB プロバイダー "SQLNCLI10" には、テーブル ""database2"."dbo"."Table2"" が含まれていません。存在しないか、現在のユーザーがそのテーブルに対する権限を持っていません。」

クエリは ServerX では機能しますが、サーバー上のデータベースへのリモート データベース接続を使用するか、 SSIS の Execute SQL タスクを使用する PC では機能しません。

何か不足していますか?助けてください ?

4

1 に答える 1

1

エラーが言うように:

テーブルが存在しないか、現在のユーザーにそのテーブルに対する権限がありません

ServerXでクエリを実行できるため、リンクサーバーとServerYのテーブルが存在することがわかり(SSISパッケージにクエリを正しく入力したと仮定)、問題はおそらくアクセス許可です。

パッケージ内のServerXの接続マネージャーが正しく構成されていない可能性があります。ログイン資格情報が間違っているか、間違ったサーバーを指している可能性があります。

于 2012-07-25T19:20:32.503 に答える