Sql store procedure partten 存储过程样式

来源:互联网 发布:java去掉字母和数字 编辑:程序博客网 时间:2024/06/06 02:34
-- =============================================-- Author:Kevin Zhang-- Create date: 2014-11-13-- Description:-- Author:Kevin Zhang-- Update date: 2014-11-25-- Description:-- =============================================USE [TestDB]GOIF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Test]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[Test]GOCREATEPROCEDURE[dbo].[Test](@Xml XML)ASBEGIN TRYBEGIN TRANDECLARE @ErrorMessage    NVARCHAR(4000),@ErrorNumber     INT,@ErrorSeverity   INT,@ErrorState      INT,@ErrorLine       INT,@ErrorProcedure  NVARCHAR(200);-- TODOCOMMIT TRANEND TRYBEGIN CATCH-- Collect error infos and it will be raise error to its invokerSELECT  @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 transactionsIF (XACT_STATE()) <> 0BEGINROLLBACK TRANEND    RAISERROR(@ErrorMessage,   @ErrorSeverity,   1,                 @ErrorNumber,  @ErrorSeverity,  @ErrorState,  @ErrorProcedure,  @ErrorLine )END CATCHGO

0 0