如何将SQL查询出来的一列数据赋值,执行存储过程
selectidfromdata,select语句搜索出来了一列数据如有100条数据,然后再将这列数据执行存储过程:execProcedures@id=''这里的id数据...
select id from data , select语句搜索出来了一列数据如有100条数据,然后再将这列数据执行存储过程:exec Procedures @id='' 这里的id数据是上一句SQL执行出来的100条数据,该如何将数据赋值给@id然后执行出数据?求大神解救!
展开
2个回答
展开全部
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、
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、
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
存储过程不能批量执行,只能用游标一个一个读取你查询出来的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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询