數(shù)據(jù)庫(kù)rollback用法 事務(wù)與存儲(chǔ)過(guò)程是什么關(guān)系?
事務(wù)與存儲(chǔ)過(guò)程是什么關(guān)系?事務(wù)中可以有存儲(chǔ)過(guò)程或事務(wù)。事務(wù)是對(duì)數(shù)據(jù)庫(kù)的一系列操作,包括存儲(chǔ)過(guò)程、更改語(yǔ)句等操作。start語(yǔ)句是begin transaction,end語(yǔ)句有兩種,一種是rollba
事務(wù)與存儲(chǔ)過(guò)程是什么關(guān)系?
事務(wù)中可以有存儲(chǔ)過(guò)程或事務(wù)。事務(wù)是對(duì)數(shù)據(jù)庫(kù)的一系列操作,包括存儲(chǔ)過(guò)程、更改語(yǔ)句等操作。start語(yǔ)句是begin transaction,end語(yǔ)句有兩種,一種是rollback,另一種是commit。存儲(chǔ)過(guò)程是由語(yǔ)句組成的程序段,用來(lái)實(shí)現(xiàn)一定的功能。它可以包含或在事務(wù)中。這是一個(gè)存儲(chǔ)過(guò)程的操作,它包括一個(gè)事務(wù)進(jìn)程和事務(wù)中的另一個(gè)存儲(chǔ)過(guò)程:create procedure,procedure and integration--start a transaction,update table name set tab=“def”,其中。。。--操作,執(zhí)行過(guò)程“parameter”--事務(wù)中包含的存儲(chǔ)過(guò)程,如果@@error>0--如果操作失敗,開(kāi)始操作--Rollback raiserror(“failed to change data!“,16,1)--return--返回前臺(tái),不要繼續(xù)執(zhí)行endleseconmittransaction--操作成功,確認(rèn)修改,繼續(xù)
事務(wù)中可以有存儲(chǔ)過(guò)程,事務(wù)中也可以有事務(wù)。事務(wù)是一系列數(shù)據(jù)庫(kù)操作,包括存儲(chǔ)過(guò)程、更改語(yǔ)句和其他操作。start語(yǔ)句是begin transaction。有兩種end語(yǔ)句,一種是rollback,另一種是commit。存儲(chǔ)過(guò)程是由語(yǔ)句組成的程序段,用來(lái)實(shí)現(xiàn)一定的功能。它可以包含或在事務(wù)中。這是一個(gè)存儲(chǔ)過(guò)程的操作,包括事務(wù)中的一個(gè)事務(wù)和另一個(gè)存儲(chǔ)過(guò)程:create procedure myprocedure as begin transaction--start a transaction update tablename set ABC=“def”其中。。。--operate exec otherprocedure “parameter ”--事務(wù)中包含的存儲(chǔ)過(guò)程if@@error>0--如果操作失敗,則開(kāi)始回滾事務(wù)--回滾raiserror(“未能更改數(shù)據(jù)
事務(wù)和存儲(chǔ)過(guò)程的區(qū)別?
這完全取決于你自己的需要。
如果不需要在存儲(chǔ)過(guò)程中提交或回滾,但調(diào)用程序負(fù)責(zé)提交或回滾,則不需要在存儲(chǔ)過(guò)程中提交或回滾
如果不希望調(diào)用程序提交或回滾,則應(yīng)在存儲(chǔ)過(guò)程中提交或回滾