1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | [sql] declare @tb table (v int primary key ,vv varchar (10)) begin tran insert into @tb select 1, 'aa' rollback tran --虽然上面回滚了事务,但还是会返回1条记录 select * from @tb begin tran update @tb set vv= 'bb' where v = 1 rollback tran --返回的数据显示,update操作成功,根本没有回滚 select * from @tb 3、CTE CTE,就是通用表表达式。 a、存储 产生的数据一般存储在内存,不会持久化存储。 也可以持久化: [sql] ; with cte as ( select 1 as v, 'aa' as vv union all select 2, 'bb' ) --把cte的数据存储在tb_cte表 select * into tb_cte from cte select * from tb_cte; --运用cte,删除数据 ; with cte_delete as ( select * from tb_cte ) delete from cte_delete where V = 1 --返回1条数据,另一条已删除 select * from tb_cte |
联系客服