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
以方接着的操作谢谢!

解决方案 »

  1.   

    如果认为我上面的问题表述不清楚,看下面的:比方说有一个全局临时表 ##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表?
      

  2.   

    把##TmpX表变成#Tmp表,可能不行, 因为变量的作用域受限制了
      

  3.   

    还是用全局临时表execute ('select * into ##tmp from '+@f)  --LZ定义一个固定的名称就可以了,例如##tmp