繁体   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