读书人

貌似麻的Update,迎新老CSDN,该如何

发布时间: 2012-01-19 20:57:58 作者: rapoo

貌似麻的Update,迎新老CSDN
有一表Test
   UseName(char(10)) Type(char(10)) QTy(Int)
第一列 A 1 10
第二列 A 1 5
第三列 A 1 8
第四列 B 2 10
.........
如果用Update
Update Test set Qty=Qty+1 where UseName= 'A ' and Type= '1 '
所有的UseName= 'A ' and  Type= '1 ' 的Qty都加1
但在我要的是只需要其中的一列的Qty加1就可以
也就是如果第一列的Qty加1,第二列和第三列的Qty就不加1了
果:
   UseName(char(10)) Type(char(10)) QTy(Int)
第一列 A 1 11(加1之後)
第二列 A 1 5
第三列 A 1 8
第四列 B 2 10
.........

的SQL怎 ?
各位大.....

[解决办法]
可能要用到游标了
[解决办法]
update Test set Qty = Qty +1 from (select top 1 * from Test ) as A where A.UserName = Test.UserName
[解决办法]
drop table Test
go
create table Test(UseName char(10),Type char(10),QTy Int)
insert into Test
select 'A ', '1 ',10
union all select 'A ', '1 ',5
union all select 'A ', '1 ',8
union all select 'B ', '2 ',10

set rowcount 1
Update Test
set Qty=Qty+1
where UseName= 'A ' and Type= '1 '
set rowcount 0

select * from Test
/*
UseName Type QTy
---------- ---------- -----------
A 1 11
A 1 5
A 1 8
B 2 10



(所影响的行数为 4 行)
*/

读书人网 >SQL Server

热点推荐