问一个存储过程中临时表的有关问题
问一个存储过程中临时表的问题
declare @Tmp table(字段1 varchar(128))
insert @Tmp (a);
insert @Tmp (ab);
insert @Tmp (abb);
declare @SampleSql nvarchar(2000)
set @SampleSql =' inset into 库表1 select 字段1 from 库表2 where 字段1 in (select * from @Tmp2 where 字段1 like '%a%' )'
exec (@SampleSql)
delete @Tmp
提示Tmp未定义变量;
正常的是能取值的,但是在拼接SQL语句里面,用不了,因为在库中不存在TMP这个表
但是又不想用create table @tmp
怎么处理??
------解决思路----------------------
动态创建、动态使用
declare @Tmp table(字段1 varchar(128))
insert @Tmp (a);
insert @Tmp (ab);
insert @Tmp (abb);
declare @SampleSql nvarchar(2000)
set @SampleSql =' inset into 库表1 select 字段1 from 库表2 where 字段1 in (select * from @Tmp2 where 字段1 like '%a%' )'
exec (@SampleSql)
delete @Tmp
提示Tmp未定义变量;
正常的是能取值的,但是在拼接SQL语句里面,用不了,因为在库中不存在TMP这个表
但是又不想用create table @tmp
怎么处理??
------解决思路----------------------
动态创建、动态使用
declare @SampleSql varchar(2000)
--insert into tmp select 字段1 from @Tmp where 字段1 like '%a%'
set @SampleSql='declare @Tmp table(字段1 varchar(128))'
set @SampleSql=@SampleSql+' insert into @Tmp values(''a'')'
set @SampleSql =@SampleSql+'insert into tmp select 字段1 from @Tmp where 字段1 like ''%a%'''
PRINT @SampleSql
exec (@SampleSql)