SQL Server 2000 ドキュメントなどの例を挙げる
Use Northwind
Go
Alter Procedure spu_UpdateOrderDetails(
@ProductID Int,
@OrderId Int,
@ErrorCode Int OutPut,
@ErrorMessage Varchar(100) Output
)
As
UPDATE [Order Details]
SET ProductID = @ProductID
WHERE OrderID = @OrderId
Set @ErrorCode = @@ERROR
IF @ErrorCode <> 0
Set @ErrorMessage = 'Some error ocurred'
GO
Declare @MyErrorCode Int
Declare @MyErrorMsg Varchar(100)
Exec spu_UpdateOrderDetails 999, 10248, @MyErrorCode OutPut, @MyErrorMsg OutPut
Print @MyErrorCode
Print @MyErrorMsg
これにより外部キー エラーが発生し、@MyErrorMsg を適切に出力します。しかし、まだ醜い外部キーエラーが発生します。
アプリケーション内から実行すると、それは Delphi または Visual Studio である可能性がありますが、いまだに醜いエラー メッセージが表示されます。
カスタムエラーをユーザーに表示するために、エラーを「トラップ」するにはどうすればよいですか?
(新しい SQL Server バージョンでは Try/Catch が提供されていることは知っていますが、これは SQL Server 2000 です)