SQL语句执行成功后 怎么还原成执行之前的
发布网友
发布时间:2022-04-09 19:08
我来回答
共3个回答
懂视网
时间:2022-04-09 23:29
2、同理,删除数据也是一样的,只不过是使用deleted表罢了。
delete from TestTB output deleted.* where id=1
3、两个结合一起:返回更新前和更新后的数据:
UPDATE TestTB SET Province = ‘湖南‘,City=‘郴州‘ OUTPUT ‘我来自(更新前)‘+ DELETED.Province+DELETED.City as [Before] ,‘我来自(更新后)‘ + Inserted.Province+Inserted.City as [After] WHERE id=1
4、还可以将返回的结果保存在表变量中,这在删除数据,并把删除的数据插入到历史表时很实用
DECLARE @temp TableTABLE( idint, Provincevarchar(50), Cityvarchar(50) )DELETEFROMTestTB OUTPUT deleted.*INTO@tempTableWHEREid>4SELECT*FROM@tempTable
-- 返回更新前的值
UPDATE ppdai_jr_shop.dbo.GeneratorUniqueNo SET suffix=suffix+2 OUTPUT Inserted.suffix WHERE prefix=‘PPDTK‘
-- 返回更新后的值
UPDATE ppdai_jr_shop.dbo.GeneratorUniqueNo SET suffix=suffix+2 OUTPUT DELETED.suffix WHERE prefix=‘PPDTK‘
SQL执行并返回执行前/后结果
标签:tab bsp nbsp 变量 dai eid declare before har
热心网友
时间:2022-04-09 20:37
没有在数据修改之前 使用begin transaction语句,你又commit数据之后,数据前的历史记录是看不见的, 所以说要搞DBA就要严谨,update语句之后如果你没有写commit语句,可以使用rollback语句还原,但 commit先于rollback执行了,那就没办法了~
热心网友
时间:2022-04-09 21:55
执行前加 begin transaction执行update执行select * 这样就可以查看修改后的效果 但此时数据只是在内存中修改 并没有提交到数据库