T-SQL存储过程中try和catch以及错误处理的用法例子

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作者 迪尤逊 出版社 人民邮电出版社 本书重点阐述了SQL Server 2005的基础知识,前半部分以建立一个金融数据库系统为主线,从最基础的收集信息入手,一步步地引导读者学会如何保证数据库的安全,创建表、主键、索引等项目,在表之间建立恰当的关系,并掌握如何备份和还原数据库;之后以前面建立的示例数据库为基础,深入讲解各种数据操作的方法,从数据检索、插入、更新、删除,到函数、触发器、存储过程的使用;最后,概略讲述了SQL Server Reporting Services。书还针对数据安全性方面的操作和细节提供了大量的例子。   本书适合希望使用SQL Server 2005的开发和管理人员阅读,也可作为高等学校相关课程的教材。 第1章 SQL Server 2005概述和安装  1.1 为什么选择SQL Server 2005  1.2 SQL Server的发展  1.3 硬件要求  1.4 示例  1.5 安装  1.6 标准安装  1.7 安全性  1.8 小结 第2章 SSMS  2.1 SSMS概览  2.2 SSMS的选项  2.3 查询编辑器  2.4 外围应用配置器工具  2.5 小结 第3章 设计和创建数据库  3.1 数据库的定义  3.2 SQL Server的数据库  3.3 决定数据库系统类型  3.4 收集数据   3.5 决定要存储在数据库的信息  3.6 外部信息和忽略的信息  3.7 建立关系  3.8 规范化  3.9 创建示例数据库  3.10 小结 第4章 安全   4.1 登录名  4.2 角色  4.3 架构  4.4 在解决方案进行下去之前  4.5 小结 第5章 定义表  5.1 什么是表  5.2 定义表:SSMS   5.3 列不仅仅是简单的数据仓库   5.4 在SQL Server存储图像和大型文本   5.5 在SSMS创建表   5.6 通过查询编辑器定义表   5.7 定义表:使用模板   5.8 创建模板和修改模板  5.9 ALTER TABLE命令  5.10 定义其余的表   5.11 设置主键   5.12 创建关系  5.13 使用SQL语句ALTER TABLE  5.14 小结  第6章 创建索引和数据库关系图  6.1 什么是索引  6.2 确定是什么导致了好的索引   6.3 确定是什么导致了坏的索引   6.4 针对性能对索引进行回顾   6.5 创建索引   6.6 删除索引  6.7 在查询编辑器修改索引  6.8 为数据库生成关系图  6.9 小结 第7章 数据库的备份、还原和维护  7.1 事务日志   7.2 备份策略   7.3 当可能发生错误  7.4 让数据库脱机   7.5 备份数据  7.6 还原数据库   7.7 分离和附加数据库  7.8 为数据库生成SQL脚本  7.9 维护数据库  7.10 小结  第8章 操作数据   8.1 T-SQL的INSERT命令的语法  8.2 SQL命令INSERT   8.3 DBCC CHECKIDENT  8.4 列约束  8.5 同时处理多条记录  8.6 检索数据  8.7 使用SSMS检索数据  8.8 SELECT语句  8.9 指定列  8.10 第一批搜索  8.11 改变输出的显示  8.12 限制搜索:WHERE的使用  8.13 字符串函数  8.14 顺序!顺序!  8.15 LIKE运算符  8.16 生成数据:SELECT INTO  8.17 谁能添加、删除或选取数据  8.18 更新数据  8.19 事务  8.20 删除数据  8.21 截断表(删除表的所有行)  8.22 删除表  8.23 小结 第9章 构建视图  9.1 什么是视图  9.2 针对安全而使用查询  9.3 加密视图定义  9.4 创建视图:SSMS  9.5 使用视图来创建视图  9.6 CREATE VIEW语法  9.7 创建视图:查询编辑器窗格  9.8 创建视图:SCHEMABINDING  9.9 为视图设置索引  9.10 小结 第10章 存储过程  10.1 什么是存储过程  10.2 CREATE PROCEDURE语法  10.3 返回一系列记录   10.4 创建存储过程:SSMS  10.5 执行存储过程的不同方法  10.6 使用RETURN  10.7 控制流程  10.8 综合应用  10.9 小结  第11章 T-SQL基础  11.1 使用多个表  11.2 变量   11.3 临时表  11.4 聚合  11.5 GROUP BY  11.6 HAVING  11.7 独特值  11.8 函数   11.9 RAISERRO

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值