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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

你可能感兴趣的:(SQL Server)