2016-06-23 17 views
0

私のストアドプロシージャは、動的列を持ち、時には10を持ち、時にはそれよりも多くのストアドプロシージャを生成します。また、ストアドプロシージャには呼び出し元アプリケーションに戻る一時テーブルがあります。SQL Server 2012でOPENROWSETが動作していない

select a.* 
into [tempdb].[dbo].[tempBase] 
from openrowset('SQLNCLI', 'Server=.;Trusted_Connection=Yes;Integrated  Security=SSPI', 'SET NOCOUNT ON;SET FMTONLY OFF ; exec LIQ_TradeBustTrader5895.dbo.price_report @loginID = ''ALL'', @tableName = ''order_msgs'', @firmname = ''ALL'', @AssetClass = ''All'', @OutputBustRecords=0, @ManualOrder=0, @TimeFrom=''0:0'', @TimeTo=''23:59'', @ExcludeSimulatedTrades=0, @SingleTable =1 ') AS a; 

は今、私はこれらのエラーを取得:

メッセージ11529、レベル16、状態1、プロシージャsp_describe_first_result_setすべてのコードパスがエラーになりので、ライン1
メタデータを決定することができませんでした。いくつかの以前のエラーを参照してください。

メッセージ4902、レベル16、状態1、プロシージャsp_describe_first_result_set、行1
が存在しないか、権限がないため、オブジェクト「#Tethys_ReportGenerator_Tbl」を見つけることができません。

+0

ジ2.Onceあなたはここでの結果セットを使って試しました:http://stackoverflow.com/questions/35951765/the-metadata-could-not-be-determined-because-every-code-path-results-in-an-error – Malcolm

+0

Procは実行前に知られていない動的列を返します。したがって、 'RESULT SETS'を使用することはできません。 –

+0

sprocにはいくつの可能な結果セットがありますか?それが何十ものものでなければ、書き直しはあまり働かないでください。 'OPENROWSET(Server =。)'は最初は汚いハックです。 –

答えて

0

少数のトラブルシューティングオプション..

1.Your SPは

Cannot find the object "#Tethys_ReportGenerator_Tbl" 

...あなたのspを実行してみてください、あなたが完了するまで、それを実行できるかどうかを確認の問題を抱えているようですので、 ..あなたのSPが正常に完了し、それでも問題が解決しない場合は、SQL結果セットのメタデータを知るために内部で使用してSPの下に実行してみてください

exec [sys].sp_describe_first_result_set "your sp" 
+0

'exec [sys] .sp_describe_first_result_set"あなたのsp "はまた私のprocとしてtempテーブルを使ってエラーを返し、reults-setを返します。 –

関連する問題