T-SQL存储过程中try和catch以及错误处理的用法例子
2014-12-13 16:37
691 查看
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: <Description,,> -- ============================================= ALTER PROCEDURE [dbo].[ImportPlatformParam] -- Add the parameters for the stored procedure here @mOrderID_Source nvarchar(64), @mProjVersion_Source nvarchar(2), @mOrderID_Target nvarchar(64), @mProjVersion_Target nvarchar(2) AS DECLARE @SQLStr nvarchar(4000), @count int BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here SET XACT_ABORT ON; BEGIN TRY BEGIN TRAN --删除目标平台的平台参数 DELETE FROM UDSGKS_ProjPlatformParamMap WHERE OrderID = @mOrderID_Target AND ProjVersion = @mProjVersion_Target --删除目标平台的平台非标点 DELETE FROM UDSGKS_ProjNSList WHERE OrderID = @mOrderID_Target AND ProjVersion = @mProjVersion_Target --导入源平台的平台参数到目标平台 INSERT INTO UDSGKS_ProjPlatformParamMap ( OrderID, ProjVersion, PlatformParamName, PlatformParamValue, PlatformParamDesc, PlatformParamType, FileName) SELECT @mOrderID_Target AS OrderID, @mProjVersion_Target AS ProjVersion, PlatformParamName, PlatformParamValue, PlatformParamDesc, PlatformParamType, FileName FROM UDSGKS_ProjPlatformParamMap WHERE OrderID = @mOrderID_Source AND ProjVersion = @mProjVersion_Source --导入源平台的非标难度时间到目标平台 DELETE FROM UDSGKS_ProjDifficulty WHERE OrderID = @mOrderID_Target AND ProjVersion = @mProjVersion_Target INSERT INTO UDSGKS_ProjDifficulty SELECT @mOrderID_Target AS OrderID, @mProjVersion_Target AS ProjVersion, PDPeriod, PRPeriod, MDPeriod, MRPeriod, LDPeriod, LRPeriod FROM UDSGKS_ProjDifficulty WHERE OrderID = @mOrderID_Source AND ProjVersion = @mProjVersion_Source --导入源平台的平台非标点到目标平台 INSERT INTO UDSGKS_ProjNSList ( OrderID, ProjVersion, NSID, NSFuncOption, NSRange, SchemaDesc, ModelID, Manner, MaterialDesc, PartID, PartName, PartSchema, MaterialID, DrawID, Remark, Flag, Hours) SELECT @mOrderID_Target AS OrderID, @mProjVersion_Target AS ProjVersion, NSID, NSFuncOption, NSRange, SchemaDesc, ModelID, Manner, MaterialDesc, PartID, PartName, PartSchema, MaterialID, DrawID, Remark, Flag, Hours FROM UDSGKS_ProjNSList WHERE OrderID = @mOrderID_Source AND ProjVersion = @mProjVersion_Source --导入源平台的附言和备注到目标平台 UPDATE UDSGKS_PlatformTask SET Postscripts = T1.Postscripts, Remark = T1.Remark FROM ( SELECT Postscripts,Remark FROM UDSGKS_PlatformTask WHERE OrderID = @mOrderID_Source AND ProjVersion = @mProjVersion_Source) AS T1 WHERE OrderID = @mOrderID_Target AND ProjVersion = @mProjVersion_Target COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN DECLARE @ErrMsg NVARCHAR(4000), @ErrSeverity INT SELECT @ErrMsg = ERROR_MESSAGE(), @ErrSeverity = ERROR_SEVERITY() RAISERROR (@ErrMsg, @ErrSeverity, 1) END CATCH END
相关文章推荐
- MySQL存储过程中的错误处理 以及mybatis调用存储过程的例子
- [MySQL] 存储过程错误异常处理例子 --> DECLARE EXIT HANDLER FOR SQLEXCEPTION
- ORACLE 存储过程的创建以及ORA-06502:PL/SQL:数字或值错误的解决方法
- SQL Server Try Catch错误处理
- Mysql存储过程中游标的使用以及错误处理
- Sql 存储过程以及 in 子句 的一些用法总结
- sql server try...catch使用 异常处理 不错的SQL错误处理
- SQL Server Try Catch错误处理
- SQL Server Try Catch错误处理
- sql2005 存储过程使用 事务 和 游标 例子
- 存储过程定义以及如何用SQL写一些存储过程实例
- SQL开发应用实例存储过程——日期格式化处理
- mysql存储过程学习笔记--错误处理
- 创建存储过程错误(已解决):Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server ver
- oracle中一些sql以及存储过程小积累(日积月累)
- 关于在查询分析器下调试存储过程提示Sqlle.dll错误的一种解决办法
- 如何在 SQL Server 的存储过程和函数里进行错误处理
- 使用try...catch...and or....finally (vbscript or jscript) 处理可能的某些或全部错误
- sql 存储过程 几个 简单例子,及在asp.net(C#)中调用存储过程的代码
- Sql分页存储过程以及实现