0

SQL Serverデータベースをセットアップしていて、リモートサーバーのストアドプロシージャを呼び出して、いくつかのテーブルにデータを入力するためのアクセス権が与えられています。

EXECVisual Studio 2008でSSISとしてリンクサーバーを作成しましたが、SQL Server Management Studio 2008は、リモートサーバー用のSSISパッケージのステートメントを好まないようです。

したがって、リンクサーバーを正常にセットアップしたら、次のようにストアドプロシージャを実行しようとします。

Select * from OPENQUERY(LinkedServerName, 'exec  storedProc paramValue')

しかし、次のエラーが発生します

メッセージ208、レベル16、状態1、プロシージャstoredProc、49行目
無効なオブジェクト名'#tmp_bl'。

Selectリンクサーバーを試しましたが、うまくいきませんでした。

ローカルSSISパッケージに入れることができるようにexecステートメントがどうあるべきか誰かが知っていますか?

4

1 に答える 1

0
Msg 208, Level 16, State 1, Procedure storedProc, 
Line 49 Invalid object name '#tmp_bl'.

あなたが呼び出している SP のように見え、次に という名前の一時テーブルにアクセスしようとします#tmp_bl

そのため、設計 (入札) から SSIS パッケージを実行しようとすると、パッケージが検証され、一時テーブルが見つかりませんでした。だからエラー。

解決策: 最初に (SSMS/Sqlcmd を使用して) 一時テーブルを作成してから、パッケージを実行してみます。お気に入り

create table #tmp_tbl ....

dtexecユーティリティを使用してコマンド プロンプトからパッケージを実行しようとしている場合はdelayvalidation、パッケージ コントロール (一時テーブルを実際に実行するコントロール。DataFlow タスクまたは SQLTask のいずれか) のプロパティをTrue( DelayValidation = True) にします。パッケージ全体の検証中に、一時テーブルが存在するかどうかを確認するために検証されません。

于 2012-05-25T12:42:03.053 に答える