簡體   English   中英

如何將動態SQL結果插入到臨時表中

[英]How to insert Dynamic SQL Result INTO Temporary Table

我實現一些代碼:

BEGIN

DECLARE 
         @SQL  AS NVARCHAR(MAX),
         @TempTable AS NVARCHAR(MAX)

SET @SQL = 'SELECT * from Employee where Instance_ID = 1';


BEGIN 

CREATE TABLE ##tempResults (SQL NVARCHAR(4000))
INSERT INTO ##tempResults EXEC @SQL;

SET @TempTable= 'select * from #tempResults ORDER BY CASE WHEN ' + @index+ ' =1 THEN [First Name] END DESC '+ ',' + ' CASE WHEN ' + @index + '=2 THEN [Last name] END DESC'

END 

EXEC sp_executesql @TempTable; 

END

我想將動態結果插入到臨時表中,但是我無法執行語句並得到錯誤。 請告訴我我該怎么辦?

如錯誤所示:

“消息203不是有效的標識符。”

您應該使用EXEC(@SQL)參見此處

建議切換到exec sp_executesql @SQL ,它可以為您提供參數設置並幫助再次進行sql注入。 特別是因為您稍后已經在查詢中使用了它(使用不同的方法來完成相同的事情永遠不是一個好主意)。 這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM