日期:2014-05-18  浏览次数:20517 次

一个查询语句的结果集转成更新语句?
SQL code

查询table表
select 字段,值,表 from table
---------------------------------
怎么把上面的查询出来的结果集变成
update 表 set 字段=值




------解决方案--------------------
SQL code

declare @a table (id int,col varchar(1))
insert into @a
select 1,'a' union all
select 2,'b' union all
select 3,'c'

declare @b table (id int,col varchar(1))
insert into @b
select 1,'d' union all
select 2,'e' union all
select 3,'f'

--查询
select * from @a
/*
id          col
----------- ----
1           a
2           b
3           c
*/
--更新
update @b
set col=a.col
from @b b left join @a a on b.id=a.id

select * from @b
/*
id          col
----------- ----
1           a
2           b
3           c
*/

------解决方案--------------------
SQL code

--如果值是字符型,还要加单引号
declare @sql nvarchar(max)
select @sql=isnull(@sql,'')+'update '+表+' set '+字段+'='''+ltrim(值)+'''; ' from table
exec(@sql)