create procedure p1
@para int
as
declare @a table(a int)
insert into @a values (@para)
return @a
gocreate procedure p2
@para int
as
declare @b table(b int)
declare @sql nvarchar(4000),@proce_name varchar(40)set @proce_name = 'p1'
set @sql = @proce_name + ' ''' + @para + ''''
exec(@b= @sql) //这里怎么写才能使@b获取存储过程p1的返回值
goexec p2
@para int
as
declare @a table(a int)
insert into @a values (@para)
return @a
gocreate procedure p2
@para int
as
declare @b table(b int)
declare @sql nvarchar(4000),@proce_name varchar(40)set @proce_name = 'p1'
set @sql = @proce_name + ' ''' + @para + ''''
exec(@b= @sql) //这里怎么写才能使@b获取存储过程p1的返回值
goexec p2
存储过程如果要返回一个表。需要这样改。
create procedure p1
@para int
as
declare @a table(a int)
insert into @a values (@para)
select * from @a
go 不过楼主的第二个存储过程确实让人看不懂。估计语法都通不过,第一个存储过程写的也没有什么实际意义,楼主想寻求帮助,还是把需求贴出来吧。。
set @TransactorID=0
print(@TransactorID)
exec sp_executesql N'select @TransactorID=5 ',N'@TransactorID int out ',@TransactorID out
print(@TransactorID)
@para int
as
insert into @a values (@para)
select * from @a
go create procedure p2
@para int
as
create table #(b int)
declare @sql nvarchar(4000),@proce_name varchar(40) set @proce_name = 'p1 '
set @sql = 'insert into # exec '+ @proce_name + '''' + @para + ''''
exec(@sql) //这里怎么写才能使@b获取存储过程p1的返回值
select * from #go exec p2
@para int
as
insert into @a values (@para)
select * from @a
go create procedure p2
@para int
as
select 1 as id into #
declare @sql nvarchar(4000),@proce_name varchar(40) set @proce_name = 'p1 '
set @sql = 'insert into # exec '+ @proce_name + '''' + @para + ''''
exec(@sql) //这里怎么写才能使@b获取存储过程p1的返回值
select * from #go exec p2
但是 happyflystone 临时表可行.除了速度慢点.换个变通方式倒可以了,再次谢谢大家.