SQL Server-流程控制 7,Try...Catch 语句
ylbtech-SQL Server:SQL Server-流程控制 7,Try...Catch 语句 |
SQL Server 流程控制中的 Try...Catch 语句。
1,Try...Catch 语句 |
1 --============================================================= 2 -- 1,Try..Catch语句(Sql 2005及以上支持) 3 -- Desc:Try...Catch语句类似于C#或C++语句中的异常处理,当Try语法块中的代码出现错误时 4 -- ,系统会将控制传给Catch语法块去处理。 5 -- author:ylbtech 6 -- pubdate:10:39 2012/12/17 7 --============================================================= 8 go 9 10 go 11 --============================================================= 12 -- 2,Syntax 13 --============================================================= 14 Begin Try 15 {sql_statement|statement_block} 16 End Try 17 Begin Catch 18 {sql_statement|statement_block} 19 End Catch 20 [;] 21 --Remark: 22 23 go 24 --============================================================= 25 -- 3,Example 26 -- Desc:删除类别表中类别编号为5的类别记录。 27 --============================================================= 28 use Northwind 29 go 30 31 --select * from Categories where CategoryID=5 32 Begin Try 33 delete Categories where CategoryID=5 34 End Try 35 36 Begin Catch 37 Print Error_Message() 38 delete Products where CategoryID=5 39 delete Categories where CategoryID=5 40 End Catch 41 42 go 43 --============================================================= 44 -- 4,Operation result 45 --============================================================= 46 47 --DELETE 语句与 REFERENCE 约束"FK_Products_Categories"冲突 48 --。该冲突发生于数据库"Northwind",表"dbo.Products", column 'CategoryID'。 49 --消息 547,级别 16,状态 0,第 6 行 50 --DELETE 语句与 REFERENCE 约束"FK_Order_Details_Products"冲突 51 --。该冲突发生于数据库"Northwind",表"dbo.Order Details", column 'ProductID'。 52 --语句已终止。 53 --消息 547,级别 16,状态 0,第 7 行 54 --DELETE 语句与 REFERENCE 约束"FK_Products_Categories"冲突 55 --。该冲突发生于数据库"Northwind",表"dbo.Products", column 'CategoryID'。 56 --语句已终止。
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |