(1) set ANSI_NULLS ON --见图1 set QUOTED_IDENTIFIER ON go ALTER proc [dbo].[procname] as begin begin transaction DECLARE @myerror INT delete from tbname SET @myerror=@myerror+@@ERROR SET @myerror=@myerror+@@ERROR begin rollback transaction end else beg
今天新搭建了一个10g的测试数据库,运行都很正常,但是在打开autotrace功能后执行语句,报错 SQL> set autotrace on SQL> select username,sid,serial#,server,paddr,status from v$session where username=USER; USERNAME SID SERIAL# SERVER PADDR STATUS ---------
如果要在Production执行数据改动必须小心,可以使用事务提前验证一下自己写的SQL是不是你期望的.尤其是Update的where 条件有问题的话,跟新的记录就会超出预期的范围.如下面的语句,一着急我差点把cartid 忘了,要是在Production执行影响就大了. BEGIN TRANSACTION and modifieddate > '2014-08-07' order by modifieddate desc ROLLBACK TRANSACTION 下面语句实现begin tra
关于事务回滚,有些不明白,不知道rollback tran在什么时候用. begin tran update 表1 update 表2 commit tran 这种写法,在更新表1或表2时出错,事务会不会自动回滚? 如果要加上rollback tran应该加在什么地方?每执行更新表后都用if @@error<>0 rollback tran做个判断吗? --我比较习惯加xact_abort选项 SET XACT_ABORT ON begin tran update 表1 up
最近rails3.2在更改数据库表字段,然后要回滚取消,但在运行rake db:rollback命令,错误: rake aborted! An error has occurred, all later migrations canceled: ActiveRecord::IrreversibleMigration/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activerecord-3.2.14/lib/active_record/migration/com