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

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

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式