Sql2005中可以使用Try Catch 语句来捕获异常了,不过这个只能捕获一般的异常像连接错误的异常是不能捕获的 具体用法如下:
set
ANSI_NULLS
ON
set QUOTED_IDENTIFIER ON
go
-- =============================================
-- Author: <Hongyu Niu>
-- Create date: <2007-7-21>
-- Description: 插入一条重大危险源档案信息
-- Return Value:
-- =============================================
ALTER PROCEDURE [ dbo ] . [ P_DangerSource_File_Add ]
@SourceName varchar ( 50 ), -- 名称
@TypeID int , -- 类型
@DangerLevel varchar ( 30 ), -- 危险级别
@IsControl bit , -- 是否监控
@SourceLocation varchar ( 200 ), -- 危险源地点
@SourceNum int , -- 危险源数量
@Descrip varchar ( 200 ), -- 对危险源描述
@Accident varchar ( 150 ), -- 可能发生事故
@Summarize varchar ( 200 ), -- 概述
@Supervisor varchar ( 30 ), -- 负责人
@Telephone varchar ( 50 ), -- 联系电话
@UserID varchar ( 50 ), -- 登记人ID
@InDate datetime , -- 登记日期
@IsChanged bit , -- 是否变更
@DeptID varchar ( 20 ) -- 部门ID
AS
Begin Try
INSERT INTO T_DangerSource_File (
[ SourceName ] ,
[ TypeID ] ,
[ DangerLevel ] ,
[ IsControl ] ,
[ SourceLocation ] ,
[ SourceNum ] ,
[ Descrip ] ,
[ Accident ] ,
[ Summarize ] ,
[ Supervisor ] ,
[ Telephone ] ,
[ UserID ] ,
[ InDate ] ,
[ IsChanged ] ,
[ DeptID ]
) VALUES (
@SourceName ,
@TypeID ,
@DangerLevel ,
@IsControl ,
@SourceLocation ,
@SourceNum ,
@Descrip ,
@Accident ,
@Summarize ,
@Supervisor ,
@Telephone ,
@UserID ,
@InDate ,
@IsChanged ,
@DeptID
)
return SCOPE_IDENTITY ()
End Try
Begin Catch
return - 1
End Catch
set QUOTED_IDENTIFIER ON
go
-- =============================================
-- Author: <Hongyu Niu>
-- Create date: <2007-7-21>
-- Description: 插入一条重大危险源档案信息
-- Return Value:
-- =============================================
ALTER PROCEDURE [ dbo ] . [ P_DangerSource_File_Add ]
@SourceName varchar ( 50 ), -- 名称
@TypeID int , -- 类型
@DangerLevel varchar ( 30 ), -- 危险级别
@IsControl bit , -- 是否监控
@SourceLocation varchar ( 200 ), -- 危险源地点
@SourceNum int , -- 危险源数量
@Descrip varchar ( 200 ), -- 对危险源描述
@Accident varchar ( 150 ), -- 可能发生事故
@Summarize varchar ( 200 ), -- 概述
@Supervisor varchar ( 30 ), -- 负责人
@Telephone varchar ( 50 ), -- 联系电话
@UserID varchar ( 50 ), -- 登记人ID
@InDate datetime , -- 登记日期
@IsChanged bit , -- 是否变更
@DeptID varchar ( 20 ) -- 部门ID
AS
Begin Try
INSERT INTO T_DangerSource_File (
[ SourceName ] ,
[ TypeID ] ,
[ DangerLevel ] ,
[ IsControl ] ,
[ SourceLocation ] ,
[ SourceNum ] ,
[ Descrip ] ,
[ Accident ] ,
[ Summarize ] ,
[ Supervisor ] ,
[ Telephone ] ,
[ UserID ] ,
[ InDate ] ,
[ IsChanged ] ,
[ DeptID ]
) VALUES (
@SourceName ,
@TypeID ,
@DangerLevel ,
@IsControl ,
@SourceLocation ,
@SourceNum ,
@Descrip ,
@Accident ,
@Summarize ,
@Supervisor ,
@Telephone ,
@UserID ,
@InDate ,
@IsChanged ,
@DeptID
)
return SCOPE_IDENTITY ()
End Try
Begin Catch
return - 1
End Catch