これは私が答えを見つけることができないより多くの質問です。SQL Serverのプロシージャ:動的SQL内の結果を選択
動的SQLでストアドプロシージャを使用していて、動的SQL内のテーブルから結果を選択した場合、プロシージャを実行すると、選択結果が表示されません。しかし、私は動的SQLの外で選択し、プロシージャを実行すると、私はテーブルの結果を参照してください。
メモ:動的SQL内で作成されるテーブルは、ローカル一時テーブルです。もちろんいつですか
これには理由がありますか?
IE
USE SERVER
GO
CREATE PROC AnalyticsDW.ComputeBestTreatment
(
@ClientCode varchar(7)='FR'
)
as
declare @sql varchar(1000)
set @sql='
Bunch of code insert into #tableX
select * from #tableX'
EXEC (@SQL)
RETURN
go
exec AnalyticsDW.ComputeBestTreatment
手順を実行するときに結果が示すエラーがないにもかかわらず、表示されません。
USE SERVER
GO
CREATE PROC AnalyticsDW.ComputeBestTreatment
(
@ClientCode varchar(7)='FR'
)
as
declare @sql varchar(1000)
set @sql='Bunch of code insert into ##tableX'
EXEC(@SQL)
select * from ##tableX
RETURN
go
exec AnalyticsDW.ComputeBestTreatment
AnalyticsDW.ComputeBestTreatmentをドロップし、それを呼び出すよりも、なぜ – Dejan
申し訳ありませんが、私は最初を完全にコピーしていなかったことに気付きました。 procを作成するためだけに編集されています。 –
私は答えを変更しました – Dejan