日期:2014-05-18  浏览次数:20544 次

在一过程里如何把##TmpX的数据变来#Tmp
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
以方接着的操作谢谢!



------解决方案--------------------
把##TmpX表变成#Tmp表,可能不行, 因为变量的作用域受限制了
------解决方案--------------------
还是用全局临时表

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