Sql store procedure partten 存储过程样式

-- =============================================
-- Author:		Kevin Zhang
-- Create date: 2014-11-13
-- Description:	

-- Author:		Kevin Zhang
-- Update date: 2014-11-25
-- Description:	

-- =============================================

USE [TestDB]
GO

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Test]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[Test]
GO

CREATE	PROCEDURE	[dbo].[Test]
(
	@Xml XML
)
AS
	BEGIN TRY
		BEGIN TRAN
			DECLARE @ErrorMessage    NVARCHAR(4000),
					@ErrorNumber     INT,
					@ErrorSeverity   INT,
					@ErrorState      INT,
					@ErrorLine       INT,
					@ErrorProcedure  NVARCHAR(200);
		
			-- TODO
			
		COMMIT TRAN
	END TRY
	BEGIN CATCH
		-- Collect error infos and it will be raise error to its invoker
		SELECT  @ErrorNumber = ERROR_NUMBER(),
				@ErrorSeverity = ERROR_SEVERITY(),
				@ErrorState = ERROR_STATE(),
				@ErrorLine = ERROR_LINE(),
				@ErrorProcedure = ISNULL(ERROR_PROCEDURE(), '-');
		SELECT @ErrorMessage = 
			N'Error %d, Level %d, State %d, Procedure %s, Line %d, ' + 
				'Message: '+ ERROR_MESSAGE();
	        
		-- Roll back any active or uncommittable transactions
		IF (XACT_STATE()) <> 0
		BEGIN
			ROLLBACK TRAN
		END
	    
		RAISERROR(@ErrorMessage, 
				  @ErrorSeverity, 
				  1,               
				  @ErrorNumber,
				  @ErrorSeverity,
				  @ErrorState,
				  @ErrorProcedure,
				  @ErrorLine
				 )
	END CATCH

GO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值