儲存過程中事務try catch 例子
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),--郵箱 @PostCode VARCHAR(10)--郵政編碼 AS BEGIN DECLARE @isExist INT,@isExistTwo INT,@CompanyExist INT,@FrameworkExist INT SET @isExist = 0 SET @isExistTwo = 0 SET @CompanyExist=0 SELECT @isExist=COUNT(*) FROM UserAccountBasicInfo WHERE
[email protected] SELECT @isExistTwo=COUNT(*) FROM CompanyBasicInfo WHERE [email protected] SELECT @CompanyExist =COUNT(*) FROM CompanyBasicInfo WHERE [Name][email protected] IF @isExist > 0 SELECT -100 --返回 -100 說明使用者賬號基本資訊表中已存在使用者名稱 ELSE IF @isExistTwo>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 END END
相關推薦
儲存過程中事務try catch 例子
CREATE PROCEDURE [dbo].[ProcAccountManagerAssignCompany] --使用者賬號基本資訊表中所需欄位 @UserName NVARCHAR(50), --使用者登入的賬戶名稱 @UserPwd NVARCHAR(5
儲存過程中使用事務和try catch
一、儲存過程中使用事務的簡單語法 在儲存過程中使用事務時非常重要的,使用資料可以保持資料的關聯完整性,在Sql server儲存過程中使用事務也很簡單,用一個例子來說明它的語法格式: 程式碼 : Create Procedure MyProcedure
spring事務——try{...}catch{...}中事務不回滾的幾種處理方式
當希望在某個方法中新增事務時,我們常常在方法頭上新增@Transactional註解 @ResponseBody @RequestMapping(value = "/payment", method = RequestMethod.POST, produces = MediaType
[儲存過程]中的事務(rollback)回滾
在編寫SQL Server 事務相關的儲存過程程式碼時,經常看到下面這樣的寫法: begin tran update statement 1 ... update statement 2 ... delete statement 3 ...
Oracle 儲存過程 中如何使用事務Transaction 自主事務 自治事務
Oracle基礎 儲存過程和事務 一、事務和儲存過程 在儲存過程中如何使用事務。當需要在儲存過程中同時執行多條新增、修改、刪除SQL語句時,為了保證資料完整性,我們需要使用事務。使用方式和在PL-SQL中非常相似,但也有一些區別。 --帶事務的儲存過程 C
SQLSERVER 儲存過程中的事務
1 CREATE PROCEDURE ProcedureNamme 2 AS 3 BEGIN 4 SET NOCOUNT ON; 5 6 BEGIN TRY---------------------開始捕捉異常 7 BEGIN TRAN-------
SqlServer中檢視、儲存過程、事務的使用。
前言 熟悉SqlServer中檢視、儲存過程、事務的使用會在操作資料時帶來更大的方便。 正文 檢視-VIEW VIEW介紹 定義: 檢視(VIEW)虛擬表,一般是不儲存資料的,但是Sqlserver的索引檢視例外(儲存資料)
在儲存過程中新增事務
--存在就刪除 IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[NAME]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo
資料庫儲存過程,事務 jfinal中呼叫儲存過程,事務
mysql DELIMITER $$ CREATE PROCEDURE `student`.`ceshi`(n INT,j CHAR(1)) BEGIN IF j = 'h' THEN SELECT * FROM blog
oracle開發中的儲存過程,遊標,if判斷經典例子
1.簡單輸出 create or replace procedure t_xuanze(name in varchar) as tname varchar(10); begin dbms_output.put_line('this is error!'); end; (注
Java中關於try{}catch{}丟擲異常的一個例子
之前對try{ }catch{ }沒有什麼瞭解知識知道有這麼個丟擲異常的方法,今天在寫一個簡單的判斷月份的程式碼時,突然想到了如果我輸入的是字串怎麼辦,於是就想到了用try丟擲異常, 在寫的時候出現個問題,就是我定義的Scanner物件必須是在try裡面定義它的型別,因為如
儲存過程中簡單事務書寫方法
每一次Begin Transaction都會引起@@TranCount加1。而每一次Commit Transaction都會使@@TranCount減1,而RollBack Transaction會回滾所有的巢狀事務包括已經提交的事務和未提交的事務,而使@@TranCoun
SQLServer 儲存過程中使用事務
儲存過程SQL: create proc ***** @GoodsId int, @Number int, @StockPrice money, @SupplierId int, @EmpId in
java中的try-catch-finnal異常處理(學習筆記)
不堪 java sha highlight 抽取 最終 throwable 關鍵字 學習筆記 一、異常概述 異常:Exception,是在運行發生的不正常情況。 原始異常處理: if(條件) { 處理辦法1 處理辦法2 處理辦法3} if(條件) { 處理辦法
SQL儲存過程中分頁
</pre><pre name="code" class="sql">ALTER proc [dbo].[GetGoodsLsit] ----分頁條件 @StartIndex varchar(20), @PageSize varchar(20), ----排序條件
如何在儲存過程中執行set命令 我來答
1.EXEC使用EXEC命令兩種用種執行儲存程另種執行態批處理所講都第二種用 面先使用EXEC演示例,程式碼1DECLARE @TableName VARCHAR(50),@Sql NVARCHAR (MAX),@OrderID INT;SET @TableName = 'Orders';SET @Orde
MySql儲存過程中傳參和不傳參以及java中呼叫程式碼
資料庫表結構 1.mysql不傳參寫儲存過程 create procedure product() -- product為儲存過程名稱 begin select * from book; end 呼叫此儲存過程為 CALL product
【轉載】postgresql儲存過程中返回型別
前言 假如需要在pg上面寫儲存過程,那麼返回型別必定是一個疑問點。 一般而言,對於一個查詢語句,為了可以統一動態返回各種資料,我們是不會蠢到每一個儲存過程都額外編寫一個返回型別 譬如: (id,name,password) 之類的,所以在寫的時候肯定會考慮 setof record這個動
儲存過程中一維陣列接受按分割符拆分的資料
declare -- Local variables here i integer; Lar_Input t_Arr.Arrname; --一維陣列接收 按分隔符拆分 begin -- Test statements here Pkg_n_Cst_String.Pr
sql在所有儲存過程中查詢包含某字串的執行語句
直接在查詢分析器中執行以下程式碼就行: 方法一) select name from sysobjects o, syscomments s where o.id = s.id and text like '%test%' and o.xtype = 'P' 方法二)