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