日期:2014-05-19  浏览次数:21010 次

动态SQL中创建的临时表不能访问怎么办?
SELECT   @N=MAX(LEN(F0080))   FROM   KLDB.DBO.OTH_D_NEWS

--临时表,ID最大值为相关股票字段最大长度
SET   @SQL= 'SELECT   TOP   '+CONVERT(VARCHAR(10),@N)+ '   ID   =   IDENTITY(INT,1,1)  
INTO   #   FROM   SYSCOLUMNS   A,   SYSCOLUMNS   B '

EXECUTE   SP_EXECUTESQL   @SQL

SELECT   *   FROM   #
---------------------------------------
服务器:   消息   208,级别   16,状态   1,过程   P_GENERATE_TB8002,行   20
对象名   '# '   无效。

应该如何处理?

------解决方案--------------------
用全局臨時表試試
------解决方案--------------------
#tableName ----> ##tableName
------解决方案--------------------
--try

SELECT @N=MAX(LEN(F0080)) FROM KLDB.DBO.OTH_D_NEWS

--临时表,ID最大值为相关股票字段最大长度
SET @SQL= 'SELECT TOP '+CONVERT(VARCHAR(10),@N)+ ' ID = IDENTITY(INT,1,1)
INTO ##T FROM SYSCOLUMNS A, SYSCOLUMNS B '

EXECUTE SP_EXECUTESQL @SQL

SELECT * FROM ##T