首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

貌似麻煩的Update,歡迎新老CSDN,该如何处理

2012-01-19 
貌似麻煩的Update,歡迎新老CSDN有一表Test   UseName(char(10))Type(char(10))QTy(Int)第一列 A110第二列A

貌似麻煩的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 行)
*/

热点排行