在一过程里如何把##TmpX的数据变来#Tmp

pmes 2007-01-12 12:00:38
CREATE Procedure CP
@X INT
AS
DECLARTE @F VARCHAR(30)
SET @F='##Tmp'+LTRIM(STR(X))

...
以下是要对##TmpX进行一些复杂的操作
由于X是可变的所以写SQL语句都要变成一字串
然后再EXECUTE()

所以想把##TmpX 复制成#Tmp临时表
这样再以后的复杂SQL操作可不用EXECUTE()

请教高手在这里如何把##TmpX 的表复制成#TMp
以方接着的操作谢谢!

...全文
177 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
marco08 2007-01-12
  • 打赏
  • 举报
回复
把##TmpX表变成#Tmp表,可能不行, 因为变量的作用域受限制了
pmes 2007-01-12
  • 打赏
  • 举报
回复
如果认为我上面的问题表述不清楚,看下面的:

比方说有一个全局临时表 ##TmpX(X为一数值可变的)

设一字串变量记下这个表名 如:
declare @x int
declare @f varchar(30)
set @f='##Tmp'+LTRIM(STR(@X))

现在变是@F 记下这个全局临时表的名

如果现在要执行一语句: execute ('select * into #tmp from '+@f)

执行完后 我们是看不到那个#tmp 临时表的,我现在的问题是

如果能把这个 ##TmpX 的表变成 #Tmp表?









dulei115 2007-01-12
  • 打赏
  • 举报
回复
还是用全局临时表

execute ('select * into ##tmp from '+@f) --LZ定义一个固定的名称就可以了,例如##tmp

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧