SQL Transcation的一些總結(jié)分享建站知識
導讀:1建站知識相信大家對于SQL Transcation再熟悉不過,它確保了數(shù)據(jù)庫的數(shù)據(jù)一致性和安全性,尤其在對數(shù)據(jù)執(zhí)行增刪時,如果發(fā)生建設網(wǎng)站公司seo網(wǎng)站優(yōu)化培訓。
1.1.1 摘要 相信大家對于SQL Transcation再熟悉不過,它確保了數(shù)據(jù)庫的數(shù)據(jù)一致性和安全性,尤其在對數(shù)據(jù)執(zhí)行增刪時,如果發(fā)生異常和錯誤它就會觸發(fā)事務回滾,從而確保了我們數(shù)據(jù)的一致性和安全性,下面我們將通過分四部分介紹事件(Transcation)。 1.1.2 正文 首先讓我們通過一個具體的例子介紹Transcation的使用,假如我們的數(shù)據(jù)庫中有一個表UserInfo,它包含三個字段分別為:UserID(自增)、UserName (nvarchar)和LuckyNumber (tinyint),如下圖所示:
復制代碼 代碼如下:
-- ============================================= -- Author: JKhuang -- Create date: 12/8/2011 -- Description: Inserts data -- ============================================= Alter PROCEDURE SPAddDataToUserInfo AS BEGIN BEGIN TRY BEGIN TRANSACTION -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Hard code inserted data. INSERT INTO UserInfo VALUES('JKhuang', 8); INSERT INTO UserInfo VALUES('Jackson', 20111111); INSERT INTO UserInfo VALUES('JKRush', 23); COMMIT TRANSACTION END TRY BEGIN CATCH ROLLBACK TRANSACTION END CATCH END GO
現(xiàn)在我們給存儲過程添加了異常處理機制TRY/CATCH(注意:SQLSERVER 2005或之后的版本才支持TRY/CATCH),接下來讓我們再執(zhí)行一次存儲過程。 圖6 執(zhí)行存儲過程消息-- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. --SET NOCOUNT ON; -- Hard code inserted data. INSERT INTO UserInfo VALUES('JKhuang', 8); INSERT INTO UserInfo VALUES('Jackson', 20111111); INSERT INTO UserInfo VALUES('JKRush', 23); COMMIT TRANSACTION END TRY BEGIN CATCH PRINT 'Error in [SPAddDataToUserInfo]: ' + ERROR_MESSAGE(); ROLLBACK TRANSACTION PRINT ERROR_MESSAGE(); PRINT 'Rolled back successful Transactions: ' + Convert(varchar, @@TRANCOUNT); END CATCH END GO -- ============================================= -- Author: JKhuang -- Create date: 12/8/2011 -- Description: Invokes store procedure to insert data. -- ========================================網(wǎng)seo優(yōu)化趨勢===== ALTER PROCEDURE SPMultiDataToUserInfo AS BEGIN BEGIN TRY BEGIN TRANSACTION PRINT 'In [SPMultiDataToUserInfo] Transactions: ' + Convert(varchar, @@TRANCOUNT); -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. --SET NOCOUNT ON; -- Hard code inserted data. INSERT INTO UserInfo VALUES('Cris', 1); EXEC SPAddDataToUserInfo INSERT INTO UserInfo VALUES('Ada', 32); COMMIT TRANSACTION END TRY BEGIN CATCH PRINT 'Error in [SPMultiDataToUserInfo]: ' + ERROR_MESSAGE(); ROLLBACK TRANSACTION PRINT ERROR_MESSAGE(); PRINT 'Rolled back successful Transactions: ' + Convert(varchar, @@TRANCOUNT); END CATCH END GO
聲明: 本文由我的SEOUC技術(shù)文章主頁發(fā)布于:2023-05-24 ,文章SQL Transcation的一些總結(jié)分享建站知識主要講述標簽,標題,SQL網(wǎng)站建設源碼以及服務器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請保留鏈接: http://www.bifwcx.com/article/web_6241.html