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 --语句已终止。

 

warn 作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted on 2012-12-25 11:57  ylbtech  阅读(519)  评论(0编辑  收藏  举报