2

テーブルの列数を次のように返す動的クエリを作成しました。

set @query = 'select '+@cols+' from [Sample] '

今、このクエリを実行して一時テーブルを埋めたいと思っています。

select * into #table from execute(@query). 

次のエラーが表示されます。

キーワード「execute」付近の構文が正しくありません

')' 付近の構文が正しくありません

ただし、このコマンドを実行すると結果が正確に返されます。execute(@query)

注: sql-azure でサポートされていない OPENROWSET を試しました。

他の回避策があれば助けてください。

4

1 に答える 1

1

#temptable ではなく、FQ テーブル名を使用してみてください。

 IF object_id('tempdb..temptable') IS NOT NULL DROP TABLE [tempdb].[dbo].[temptable] 
 DECLARE @query varchar(4000)
 SET @query = 'select '+ @cols +' into [tempdb].[dbo].[temptable] from [Sample]'

 EXECUTE (@query)

 SELECT * from [tempdb].[dbo].[temptable] 

SQLFiddleで結果を確認してください

于 2015-10-13T15:56:17.540 に答える