请教:存储过程中,通过SelectInto创建的临时表用exec命令无法取到

brusehht 2005-08-16 05:15:57
我的测试存储过程如下,主要是想通过传入表名的方式把信息加入到一张临时表中,然后再进行进一步的运算,当然这里只是一个测试,没有什么特殊的用途,但这个存储过程运行以后,老师告诉我#temp不存在,也就是说临时表不存在,大家帮我看看是什么原因:
CREATE PROCEDURE MyReport_Test
@Dept varchar(255)

AS
begin
declare @sql1 nvarchar(1000) --生成的sql语句
declare @sql2 nvarchar(1000) --生成的sql语句
set @sql1='select * into #temp From '+@Dept
set @sql2='select * From #temp'
exec sp_executesql @sql1
exec sp_executesql @sql2
end
GO
...全文
134 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
子陌红尘 2005-08-16
CREATE PROCEDURE MyReport_Test
@Dept varchar(255)

AS
begin
declare @sql nvarchar(4000) --生成的sql语句
set @sql='select * into #temp From '+@Dept
set @sql=@sql + ' select * From #temp'
exec sp_executesql @sql
end
GO
回复
520zyb 2005-08-16
改成用全局临时表:
begin
declare @sql1 nvarchar(1000) --生成的sql语句
declare @sql2 nvarchar(1000) --生成的sql语句
set @sql1='select * into ##temp From '+@Dept
set @sql2='select * From ##temp'
exec sp_executesql @sql1
exec sp_executesql @sql2
end
回复
相关推荐
发帖
应用实例
创建于2007-09-28

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
帖子事件
创建了帖子
2005-08-16 05:15
社区公告
暂无公告