能否在一条SQL里完成更新和取数据两个事情?该如何解决
能否在一条SQL里完成更新和取数据两个事情?
想在一条语句里完成对一个值的更新和获取,比如先加1再SELECT出来,怎么写?
------解决方案--------------------
一条语句不可能 ,但可以放一个事务里面
------解决方案--------------------
想在一条语句里完成对一个值的更新和获取,比如先加1再SELECT出来,怎么写?
------解决方案--------------------
一条语句不可能 ,但可以放一个事务里面
------解决方案--------------------
- SQL code
DECLARE @T TABLE (COL1 INT) INSERT INTO @T SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UPDATE T1 SET COL1=COL1+1 OUTPUT DELETED.COL1 AS COL1_OLD,INSERTED.COL1 AS COL1_NEW FROM @T T1 WHERE COL1<3 /* COL1_OLD COL1_NEW ----------- ----------- 1 2 2 3 */
------解决方案--------------------
- SQL code
create table tb ( id int,name varchar(10) ) insert into tb select 1,'aa' declare @t table(name1 varchar(10),name2 varchar(10)) update tb set name='bb' output inserted.name,deleted.name into @t where id=1 select * from @t /* ------ name1 name2