日期:2014-05-18 浏览次数:20429 次
create table t1(code varchar(10)) insert into t1 select 'aaa' insert into t1 select 'bbb' create table t2(code varchar(10)) insert into t2 select 'bbb' go go create procedure [dbo].[p_CopyData] @SrcTableName nvarchar(50), @DestTableName nvarchar(50) as begin declare @num int,@i int exec('insert into #t_code select '+@DestTableName+'.code from '+@SrcTableName+' join '+@DestTableName+' on '+@SrcTableName+'.code='+@DestTableName+'.code') end go create table #t_code(code varchar(10)) exec p_copyData 't1','t2' select * from #t_code /* code ---------- bbb (1 行受影响) */ go drop table t1,t2,#t_code drop procedure p_copydata
------解决方案--------------------
存储过程内部定义的临时表的作用域只是当前这个存储过程中,临时表将在退出其作用域时由系统自动删除
------解决方案--------------------
#t_code--改为 ##t_code 全局临时表也可接收
建议
用临时表或表变量接收