读书人

能否在一条SQL里完成更新和取数据两个

发布时间: 2012-03-14 12:01:12 作者: rapoo

能否在一条SQL里完成更新和取数据两个事情?
想在一条语句里完成对一个值的更新和获取,比如先加1再SELECT出来,怎么写?

[解决办法]
一条语句不可能 ,但可以放一个事务里面
[解决办法]

SQL code
DECLARE @T TABLE (COL1 INT)INSERT INTO @TSELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3UPDATE T1 SET COL1=COL1+1OUTPUT DELETED.COL1 AS COL1_OLD,INSERTED.COL1 AS COL1_NEWFROM @T T1WHERE COL1<3/*COL1_OLD    COL1_NEW----------- -----------1           22           3*/
[解决办法]
SQL code
create table tb(   id int,name varchar(10))insert into tbselect 1,'aa'declare @t table(name1 varchar(10),name2 varchar(10))update tbset name='bb'output inserted.name,deleted.name into @twhere id=1select * from @t/*------name1    name2 

读书人网 >SQL Server

热点推荐