SQL Server数据库学习之 —— 存储过程- 事务 - try-catch代码块
扫描二维码
随时随地手机看文章
注意:在下列代码中的:begin catch ...... end catch代码块,虽然其中没有编写任何语句,但是“begin catch ...... end catch”代码块不可省略,否则编译器报错!
存储过程代码如下:
USE [B2C2] -- 使用B2C2数据库 SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[proc_test02] ( -- 设置全局变量 @D_SEX char(8), -- 性别 @D_NAME varchar(128), -- 姓名 @D_AGE int, -- 年龄 @D_STUNO int, -- 学号 @D_COUNT int OUTPUT -- 数量,输出参数 ) AS BEGIN TRY -- 设置局部变量 DECLARE @D_TEACHER varchar(128); -- 教师姓名 DECLARE @D_SUBJECT varchar(64); -- 科目 SELECT TOP 1 @D_TEACHER = TEACHER, @D_SUBJECT = SUBJECTS FROM dbo.t_class WHERE STUNO = @D_STUNO; BEGIN TRAN -- 开启事务 END TRY BEGIN CATCH END CATCH -- "BEGIN TRY--END TRY"与"BEGIN CATCH--END CATCH"要配对使用 IF(@@TRANCOUNT > 0) -- 判断事务是否执行过 BEGIN SET @D_COUNT = 1; COMMIT TRAN; -- 关闭事务 END GO