儲存過程中事務try catch 例子

2021-06-04 16:03:08 字數 2375 閱讀 8978

create procedure [dbo].[procaccountmanagerassigncompany]

--使用者賬號基本資訊表中所需欄位

@username nvarchar(50), --使用者登入的賬戶名稱

@userpwd nvarchar(50), --使用者登入的密碼

@assignuserid int, --分配此使用者的管理員id

@parentid int, --父id

--企業基本資訊表中所需欄位

@adduser int, --新增者id

@name nvarchar(80), --公司名稱

@address nvarchar(80),--公司位址

@tel varchar(15),--聯絡**

@email varchar(50),--郵箱 as

begin

declare @i***ist int,@i***isttwo int,@companyexist int,@frameworkexist int

set @i***ist = 0 set @i***isttwo = 0 set @companyexist=0

select @i***ist=count(*) from useraccountbasicinfo where username=@username

select @i***isttwo=count(*) from companybasicinfo where adminusername=@username

select @companyexist =count(*) from companybasicinfo where [name]=@name

if @i***ist > 0

select -100 --返回 -100 說明使用者賬號基本資訊表中已存在使用者名稱

else if @i***isttwo>0

select -200 --返回 -200 說明企業資訊表中使用者名稱已存在

else if @companyexist >0

select -300 --返回 -300 說明企業名稱已經存在

else -- 執行插入

begin

begin tran

begin try

--1.往useraccountbasicinfo表中插入賬號資訊

insert into useraccountbasicinfo

( [username],

[userpwd],

[assignuserid],

[assigntime],

[lastupdatetime],

[isdeleted],

[parentid]

) values

( @username,

@userpwd,

@assignuserid,

getdate(),

getdate(),

0,@parentid

) --2.往companybasicinfo表中插入企業資訊

insert into companybasicinfo

( [adminusername],

[name],

[address],

[tel],

[email],

[postcode],

[isdeleted],

[addtime],

[adduser],

[updatetime],

[updateuser]

) values

( @username,

@name,

@address,

@tel,

@email,

@postcode,

0,getdate(),

@adduser,

getdate(),

@adduser

) --3.往組織架構表中插入資料

declare @companyid int

select @companyid = ident_current( 'companybasicinfo' )

insert into companyframework

( [companyid],

[name],

[parentid],

[isdeleted]

) values

( @companyid,

@name,0,0

) commit

end try

begin catch

rollback

end catch

endend

儲存過程中事務操作

資料庫中事務主要應用在多條語句的更新操作 插入 修改 刪除 可以保證資料的完整性與正確性。使用原則為盡可能少的影響資料,以免產生死鎖或者占用資源。在儲存過程中如果中間操作有非嚴重的錯誤資訊執行不會中斷,會繼續執行並返回相應結果。但是程式呼叫的話如果不是用 try catch形式則會報錯,出現黃頁。需...

在儲存過程中實現事務

在圖書館管理系統中系統管理員可以進行的操作有 借 還 新增 刪除 修改圖書或新增 刪除 修改讀者等,很多的操作都涉及到多個表的進行,我們一定要保持資料的一致性。如 刪除讀者 操作,會在讀者表 reader 中進行讀者的刪除,該讀者刪除後,借書表 reader book 也沒有必要再保留該讀者的借書記...

在儲存過程中運用事務

在儲存過程中運用事務 create database study use study create table peopleinfor 使用者資訊表 id int primary key identity 1001,1 主鍵自動增長 name1 nvarchar 30 使用者名稱 ymoney mo...