如何将SQL查询出来的一列数据赋值,执行存储过程

select id from data , select语句搜索出来了一列数据如有100条数据,然后再将这列数据执行存储过程:exec Procedures @id='' 这里的id数据是上一句SQL执行出来的100条数据,该如何将数据赋值给@id然后执行出数据?求大神解救!

第1个回答  2013-02-26
CREATE TABLE #Rtb_temp(
rid int not null identity(1,1),
id VARCHAR(50)
)
declare @id VARCHAR(5000),
@CP int=0,
@maxCP int=0,
@sql nvarchar(max)=''
insert into #Rtb_temp select id from tb
select @maxCP=MAX(rid) from #Rtb_temp
DECLARE MS CURSOR FOR
SELECT rid,id FROM #Rtb_temp
OPEN MS
FETCH NEXT FROM MS INTO @CP,@id
WHILE @@fetch_status=0
BEGIN
IF @CP <@maxCP
BEGIN
SELECT @sql=@sql+@id+','
END else
begin
select @sql=@sql+@id
end
FETCH NEXT FROM MS INTo @CP,@id
END
CLOSE MS
DEALLOCATE MS
exec Procedures @id=@sql
这样写会好点,可以把所有数据显示在一张表里面 。看是否OK、本回答被提问者和网友采纳
第2个回答  2013-02-25
存储过程不能批量执行,只能用游标一个一个读取你查询出来的id然后执行存储过程追问

这个我也知道,问题是怎么写?

追答

呵呵,知道就该问怎么写游标喽
declare @id int
declare cursor1 cursor for
select id from tb
open cursor1
fetch next from cursor1 into @id
while @@fetch_status=0
begin
exec Procedures @id
fetch next from cursor1 into @id
end
close cursor1
deallocate cursor1

追问

不行,得出的结果不对。

追答

什么结果不对?

相似回答