Sqlserver 存儲(chǔ)過程中結(jié)合事務(wù)的代碼
--方式一
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USP_ProcedureWithTransaction_Demo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[USP_ProcedureWithTransaction_Demo]
GO
-- =============================================
-- Author: <ChengXiaoming>
-- Create date: <2010-06-11>
-- Description: <Demo:存儲(chǔ)過程中使用事務(wù)>
-- =============================================
Create PROCEDURE [dbo].[USP_ProcedureWithTransaction_Demo]
As
Begin
SET XACT_ABORT ON
Begin Transaction
Insert Into Lock(LockTypeID) Values('A')--此語句將出錯(cuò),LockTypeID為Int類型
Update Lock Set LockTypeID = 2 Where LockID = 32
Commit Transaction
SET XACT_ABORT OFF
End
GO
--方式二
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USP_ProcedureWithTransaction_Demo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[USP_ProcedureWithTransaction_Demo]
GO
-- =============================================
-- Author: <ChengXiaoming>
-- Create date: <2010-06-11>
-- Description: <Demo:存儲(chǔ)過程中使用事務(wù)>
-- =============================================
Create PROCEDURE [dbo].[USP_ProcedureWithTransaction_Demo]
As
Begin
Begin Transaction
Insert Into Lock(LockTypeID) Values('A')--此語句將出錯(cuò),LockTypeID為Int類型
Update Lock Set LockTypeID = 1 Where LockID = 32
Commit Transaction
If(@@ERROR <> 0)
Rollback Transaction
End
GO
--方式三
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USP_ProcedureWithTransaction_Demo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[USP_ProcedureWithTransaction_Demo]
GO
-- =============================================
-- Author: <ChengXiaoming>
-- Create date: <2010-06-11>
-- Description: <Demo:存儲(chǔ)過程中使用事務(wù)>
-- =============================================
Create PROCEDURE [dbo].[USP_ProcedureWithTransaction_Demo]
As
Begin
Begin Try
Begin Transaction
Update Lock Set LockTypeID = 1 Where LockID = 32--此語句將出錯(cuò),LockTypeID為Int類型
Insert Into Lock(LockTypeID) Values('A')
Commit Transaction
End Try
Begin Catch
Rollback Transaction
End Catch
End
GO
Exec [USP_ProcedureWithTransaction_Demo]
- c#實(shí)現(xiàn)sqlserver事務(wù)處理示例
- SQL Server觸發(fā)器及觸發(fā)器中的事務(wù)學(xué)習(xí)
- sqlserver中的事務(wù)和鎖詳細(xì)解析
- SQLSERVER分布式事務(wù)使用實(shí)例
- 淺析SQL Server中包含事務(wù)的存儲(chǔ)過程
- SQLServer存儲(chǔ)過程中事務(wù)的使用方法
- sqlserver 函數(shù)、存儲(chǔ)過程、游標(biāo)與事務(wù)模板
- SQL Server存儲(chǔ)過程中編寫事務(wù)處理的方法小結(jié)
- Sql Server中的事務(wù)介紹
- Sql Server事務(wù)語法及使用方法實(shí)例分析
相關(guān)文章
SQL Server提示"選定的用戶擁有對象,所以無法除去該用戶”
今天在幫朋友弄一臺(tái)服務(wù)器的時(shí)候當(dāng)我需要?jiǎng)h除一個(gè)數(shù)據(jù)庫里的用戶時(shí),提示如下錯(cuò)誤信息: "選定的用戶擁有對象,所以無法除去該用戶" 如何解決呢?2009-04-04sqlserver中重復(fù)數(shù)據(jù)值只取一條的sql語句
sqlserver中有時(shí)候我們需要獲取多條重復(fù)數(shù)據(jù)的一條,需要的朋友可以參考下面的語句2012-05-05SqlServer系統(tǒng)數(shù)據(jù)庫的作用深入了解
至于SqlServer系統(tǒng)數(shù)據(jù)庫的作用可以從以下幾個(gè)部分介紹下:Master/Model/Tempdb/Distribution/Msdb;感興趣的你可以參考下哦,不妨可以充充電了2013-02-02MSSQL MySQL 數(shù)據(jù)庫分頁(存儲(chǔ)過程)
有關(guān)分頁 SQL 的資料很多,有的使用存儲(chǔ)過程,有的使用游標(biāo)。本人不喜歡使用游標(biāo),我覺得它耗資、效率低;使用存儲(chǔ)過程是個(gè)不錯(cuò)的選擇,因?yàn)榇鎯?chǔ)過程是經(jīng)過預(yù)編譯的,執(zhí)行效率高,也更靈活2012-01-01SQL SERVER調(diào)用存儲(chǔ)過程小結(jié)
在SQL Server數(shù)據(jù)庫的維護(hù)或者Web開發(fā)中,有時(shí)需要在存儲(chǔ)過程或者作業(yè)等其他數(shù)據(jù)庫操作中調(diào)用其它的存儲(chǔ)過程,下面介紹其調(diào)用的方法2015-11-11MSSQL2005數(shù)據(jù)附加失敗報(bào)錯(cuò)3456解決辦法
今天在把數(shù)據(jù)庫備份出去,再到另一臺(tái)服務(wù)器上進(jìn)行數(shù)據(jù)還原時(shí)出現(xiàn),數(shù)據(jù)附加失敗錯(cuò)誤3456提示,下面來看我的解決過程2012-09-09當(dāng)master down掉后,pt-heartbeat不斷重試會(huì)導(dǎo)致內(nèi)存緩慢增長的原因及解決辦法
這篇文章主要介紹了當(dāng)master down掉后,pt-heartbeat不斷重試會(huì)導(dǎo)致內(nèi)存緩慢增長的原因及解決辦法,需要的朋友可以參考下2016-10-10執(zhí)行一條sql語句update多條記錄實(shí)現(xiàn)思路
如果你想更新多行數(shù)據(jù),并且每行記錄的各字段值都是各不一樣,你會(huì)怎么辦呢?本文以一個(gè)示例向大家講解下如何實(shí)現(xiàn)如標(biāo)題所示的情況,有此需求的朋友可以了解下2013-08-08SQLServer 優(yōu)化SQL語句 in 和not in的替代方案
用IN寫出來的SQL的優(yōu)點(diǎn)是比較容易寫及清晰易懂,這比較適合現(xiàn)代軟件開發(fā)的風(fēng)格。2010-04-04