sqlserver 批量更新某些行数据等于另一行数据,求教 30

如图上的数据,想要根据相同的dmlx数据来查询,把pic和place设置更新为有数据的那一行的两个值;例如dmlx=2的有两行,那么下面pic为0及place为空的那一行... 如图上的数据,想要根据相同的dmlx数据来查询,把pic和place设置更新为有数据的那一行的两个值;
例如dmlx=2的有两行,那么下面pic为0及place为空的那一行更新为pic='201410191001.jpg',place也同样更新为“德阳市”,下面的数据同理,有几行就更新几行
展开
 我来答
0808xyj
2014-10-19 · TA获得超过1891个赞
知道大有可为答主
回答量:1237
采纳率:100%
帮助的人:1069万
展开全部
create procedure [dbo].[p_updateInfo]
as
begin
declare @tableName varchar(100),
@intitNum int,
@maxCountNum int,
@dmls int,
@pic varchar(15),
@place varchar(15),
@strsql NVARCHAR(1000)

begin
select identity(int,1,1) as ids,* into #temp1 from aab

select * into #temp2 from aab
where pic !=0 and place is not null
select @intitNum = 1
select @maxCountNum = count(*) from #temp2
while(@intitNum <= @maxCountNum)
begin
select @strsql = N'select ' + @dmls + ' = dmlx '+ @pic + ' = pic '
+ @place + ' = place from aab where ids =' + @intitNum
print @strsql

--print @strsql
--exec sp_executesql(@strsql)
exec sp_executesql @strsql,N'@dmls varchar output,@place varchar output,@dmls int output', @dmls = @dmls output,@place = @place output,@dmls = @dmls output
-- select @dmls = dmlx,@pic =pic,@place = place from #temp2 where ids = @intitNum
--select @strsql = N'update #temp1 set pic = ' + @pic+ ' ,place = '+@place + ' where dmlx = ' + @dmls
--update #temp1 set pic = @pic,place = @place where dmlx = @dmls
--exec sp_executesql @strsql
update #temp1 set pic = @pic,place = @place where dmlx = @dmls
select @intitNum = @intitNum + 1
end
end
end
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式