Foxtable(狐表)用户栏目专家坐堂 → 拼接了一个sql语句如何传递到储存过程中生成临时表?


  共有3182人关注过本帖树形打印复制链接

主题:拼接了一个sql语句如何传递到储存过程中生成临时表?

帅哥哟,离线,有人找我吗?
有点色
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/19 15:52:00 [显示全部帖子]

 直接新建表。

 

 select * into (#temp1) from (sql语句)


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/19 17:11:00 [显示全部帖子]

 单引号的问题,你合成的sql语句有问题

 

SET @sql = "SELECT * INTO #temp1 FROM (" + @sqltb + ")"

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/19 17:34:00 [显示全部帖子]

BEGIN
    DECLARE @sql NVARCHAR(MAX);
    IF OBJECT_ID('tempdb..#temp1') IS NOT NULL
        DROP TABLE #temp1;
    SET @sql = 'SELECT * INTO #temp1 FROM (' + @sqltb + ') a'
    EXEC sp_executesql @sql;
    Go;
     
   SE LECT * FROM #temp1;
END;

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/19 17:48:00 [显示全部帖子]

 不是这个前后的意思。你写在前面,是你的语句在@sql里面,执行的时候就一起执行了。

 

 贴出你写的完整代码。


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/22 9:11:00 [显示全部帖子]


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/22 12:08:00 [显示全部帖子]

 弹出你合成的sql语句看看。提示就是你的语句错误。

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/22 12:28:00 [显示全部帖子]

弹出的是这个?你这个在sql测试窗口测试,是否报错?

 

Exec usp_tbover '采购入库明细', '(Select ''CG1702-052'' as 来源单号,''A0106000280000'' as 产品编码,85 as 数量)'


 回到顶部