1樓:angry·車車
rollback是針對事務的,你如果沒有在執行語句之前開啟事務,那麼無法rollback,建議你還是想別的辦法吧,事務語句如下(sqlserver的給你借鑑):
--開啟事務
begin tran
--執行操作
update accounts_user***p set telphone=123456 where userid=14
--執行錯誤事務回滾
rollback
--如果正確進行事務提交
***mit
可以勾選一句執行一句,但是***mit了就不能rollback
2樓:猴麼戎
你這個沒有begin ...end 時,第二個rollback transaction的存在會產生兩個報錯
rolling back the transaction two times would cause an error.
rollback transaction 請求沒有對應的 begin transaction。
且第一個rollback transaction 與end之前的語句不會執行
你這個有begin ...end 時,不會報錯,且第一個rollback transaction 與end之前的語句不會執行
這應該是一段完整指令碼的片段,你把完整指令碼仔細看看吧
3樓:千鋒教育
回滾要放在事務裡面進行,才能進行回滾;sql裡面的事務使用關鍵字transaction
1:可以用try catch捕獲
begin try
begin tran
update table set a=1;
***mit tran
end try
begin catch
rollback tran
end catch
2:可以使用error 全域性變數
begin tran
update tablename set ad=1111if @@error<>0 begin rollback end***mit tran
注意:如果一個事務寫了 begin trans ,後面一定要跟上 ***mit tran或 rollback transaction ,否則可能導致被鎖
4樓:匿名使用者
如果你已經***mit了那麼就不能再通過事物回到update之前的狀態了,不過如果你用的是oracle資料庫,可以用它的資料庫閃回機制實現。
5樓:虞嘉妍
在oracle中提交之後,就不能rollback了
sql語句修改欄位長度,sql語句如何修改欄位長度
oracle下這麼執行 alter table member modify phone char 15 sqlserver下這麼執行 alter table member alter column phone char 15 你到底用什麼庫 sql server修改表的欄位長度的語法規則及示例如下 ...
SQL語句問題,SQL語句問題
樓主在資料結構有問題,帳號相同是可以的,但其實兩者在關係並不是單單是帳號在關係,還有工號之間有關係,所以你的結構有點點問題,既然工號之間也是有關係的,那麼也應該提取出來,所以你的b表應該儲存為 三個欄位 賬號 收銀員 營業員 儲存內容 賬號 收銀員id 營業員id 那麼你想要的結果就很清晰了 sel...
如何優化用sql語句insert
插入書寫方式 1 insert into t1 field1,field2 value 001 002 最好的做法明確插入的每一列,列於查錯,而且漏列的機率會降低。2 insert into t1 field1,field2 values 001 002 003 004 能夠批量插入資料最好批量插入...