SQL Server数据库学习之 —— 存储过程- 事务

来源:互联网 发布:程序员 任务开发流程 编辑:程序博客网 时间:2024/06/05 04:04

          注意:在下列代码中的:begin catch  ...... end catch代码块,虽然其中没有编写任何语句,但是“begin catch  ...... end catch”代码块不可省略,否则编译器报错!


存储过程代码如下:

USE [B2C2]  -- 使用B2C2数据库  SET ANSI_NULLS ONSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE [dbo].[proc_test02](    -- 设置全局变量@D_SEX char(8),         -- 性别@D_NAME varchar(128),   -- 姓名@D_AGE int,             -- 年龄 @D_STUNO int,           -- 学号    @D_COUNT int  OUTPUT    -- 数量,输出参数               )ASBEGIN 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 TRYBEGIN CATCHEND CATCH     -- "BEGIN TRY--END TRY"与"BEGIN CATCH--END CATCH"要配对使用  IF(@@TRANCOUNT > 0)  -- 判断事务是否执行过BEGIN  SET @D_COUNT = 1;  COMMIT TRAN;   -- 关闭事务ENDGO