SQL中错误处理的问题,求助中》》》

来源:百度知道 编辑:UC知道 时间:2024/06/27 04:20:17
先看代码:
USE tempdb
creat table metable(pk int identity(1,1)primary key,a int unique,b nvarchar(100)unique)

creat table mytable2(pk int identity(1,1)primary key,a int unique,b nvarchar(100))

crcat table errortable(a int,b nvarchar(1000),object sysname--->/*sysname是种数据类型吗?*/,date datetime,errno int,severity tingint,state int,message nvarchar(300)xactstate tinyint)
go
create proc sedemotrycatch @a nvarchar(100),@b nvarchar(100)
AS----->这个AS在这里起什么作用?
print N'进入存储过程但未进入TRY区块'

BEGIN TRY

print N'进入TRY区块'

Insert mytable values(@a,@b)

print N'插入记录完结并离开TRY区块'

END TRY

BEGIN CATCH
print N'进入CATCH区块'

IF error_number()=245
print N'处理数据类型转换错误。。。'
else if error_number()=515
print N'处理违被NULL条件约束。。'
else if error_number=2627
print N'处理违被unique条件约束'

ELSE

BEGIn

sysname--->/*sysname是种数据类型吗?*/
是类型
AS----->这个AS在这里起什么作用?
类似于vb里的定义成的变量类型.一般都省略.
如DECLARE @i int相当于DECLARE @i AS int

EXEC spdemotrycatch 'a','a' |----->这段的意思是什么?
执行存储过程传递'a','a'参数给他.
EXEC就是执行过程或者函数.估计是EXECUTE的缩写.