VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1008|回复: 7

动态SQL中创建的临时表不能访问怎么办?

[复制链接]

2

主题

18

帖子

16.00

积分

新手上路

Rank: 1

积分
16.00
发表于 2020-2-2 15:40:02 | 显示全部楼层 |阅读模式
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
对象名 '#' 无效。

应该如何处理?
回复

使用道具 举报

0

主题

66

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-3-21 08:15:01 | 显示全部楼层
不要建临时表,用完后手动drop
回复

使用道具 举报

0

主题

93

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-3-21 10:00:02 | 显示全部楼层
@SQL
定义为nvarchar
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-3-21 10:30:01 | 显示全部楼层
用全局臨時表試試
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-3-21 11:15:02 | 显示全部楼层
#tableName ----> ##tableName
回复

使用道具 举报

0

主题

114

帖子

69.00

积分

新手上路

Rank: 1

积分
69.00
发表于 2020-3-21 12:15:02 | 显示全部楼层
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 #a FROM SYSCOLUMNS A, SYSCOLUMNS B'

        EXECUTE SP_EXECUTESQL @SQL

SELECT * FROM #a


临时表也要表名啊- -#
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-3-21 13:15:01 | 显示全部楼层
--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
回复

使用道具 举报

0

主题

93

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-3-21 16:45:02 | 显示全部楼层
楼主的用法是不正确的,看一下联机帮助对你比较有用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表