create procedure ss
@wherestr varchar(1000)
as
delcare @sql
select @sql=' select s,s1,s2 into #tmp from k where s='+@wherestrexec(@sql)
goexec ss '1'
为什么运行提示#tmp未找到....如果把引号去了 select s,s1,s2 into #tmp from k where s=就可以
但是我的参数就办法用了这种问题怎么解决
@wherestr varchar(1000)
as
delcare @sql
select @sql=' select s,s1,s2 into #tmp from k where s='+@wherestrexec(@sql)
goexec ss '1'
为什么运行提示#tmp未找到....如果把引号去了 select s,s1,s2 into #tmp from k where s=就可以
但是我的参数就办法用了这种问题怎么解决
@wherestr varchar(1000)
as
declare @sql nvarchar(1000)
select @sql=' select s,s1,s2 into #tmp from k where s='+@wherestr exec(@sql)
go
@wherestr varchar(1000)
as
declare @sql nvarchar(1000)
select @sql=' select s,s1,s2 into #tmp from k where s='''+@wherestr +''''exec(@sql)
外部调用
@wherestr varchar(1000)
as
declare @sql varchar(1000)
create table #tmp(s int, s1 int, s2 int) -->数据类型自己调整
select @sql='insert into #tmp select s,s1,s2 from k where s='+@wherestrexec(@sql)
goexec ss '1'
@wherestr varchar(1000)
as
declare @sql varchar(8000)
select @sql=' select s,s1,s2 into ##tmp from k where s='''+@wherestr+''''
exec(@sql)
exec ss '1'
select * from ##tmp
create procedure ss
@wherestr varchar(1000)
as
declare @sql nvarchar(1000)
select @sql=' select s,s1,s2 from k where s='''+@wherestr +''''exec(@sql)
go
--调用
create table #tmp (s int,s1 int,s2 int)--定义类型
insert #tmp exec ss '1'
select * from #tmp
遇到这种问题建议你先print看看语句被拼成什么样的如这串
declare @wherestr varchar(50),@sql varchar(500)
set @wherestr='111'
select @sql=' select s,s1,s2 into #tmp from k where s='''+@wherestr +''''
print @sql
对了你没有为@sql 附加数据类型delcare @sql varchar(500)