当前位置:  开发笔记 > 数据库 > 正文

TSQL从动态SQL写入临时表

如何解决《TSQL从动态SQL写入临时表》经验,为你挑选了2个好方法。

请考虑以下代码:

SET @SQL1 = 'SELECT * INTO #temp WHERE ...'
exec(@SQL1)
SELECT * from #temp  (this line throws an error that #temp doesn't exist)

显然这是因为exec命令会旋转一个单独的会话,而#temp是该会话的本地会话.我可以使用全局临时表## temp,但是我必须提出一个命名方案来避免冲突.你们都推荐什么?



1> boj..:

您是否尝试明确创建模板表?

Create Table #temp (..)


这确实解决了范围界定问题.但是因为在执行exec语句之前我不知道模式.(除非有一种方法可以在不定义模式的情况下创建表?)

2> 小智..:

尝试## temp因为您的动态查询是在其他光纤上执行的,所以您无法看到其本地临时表.相反,如果你宣布你的临时表像全球,它会产生一种感觉.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有