MSDE FunClub | 最終更新日 : 2000/08/08 | |
Microsoft Data Engine FunClub |
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(上巻) | ||
【第3章219p 〜 220p掲載】 |
-- [SQL03_02.SQL] -- SQLServer7.0 Transact-SQL言語 -- 日本技術ソフト開発 堀川 明 -- http://www.horikawa.ne.jp/msde/ -- -- このSQLプログラムは、 -- @@ERROR を使ったSQL文の実行時エラー調査を行う例題です -- -- ( 件処理されました)の表示を抑制する SET NOCOUNT ON GO -- ********************************************************************** -- もし同じ名前の一時ローカルストアドプロシージャが存在したら削除する -- 【注意】 -- OBJECTPROPERTY関数は、現在のデータベース内で検査する -- 一時オブジェクトの存在検査を行う場合は接続先をtempdbにすること -- ********************************************************************** USE tempdb GO IF( (object_id('tempdb..#PROC_エラー表示') IS NOT NULL) AND OBJECTPROPERTY(object_id('tempdb..#PROC_エラー表示'), 'IsProcedure') = 1 ) BEGIN PRINT '一時ストアドプロシージャ[#PROC_エラー表示]削除します' DROP PROCEDURE #PROC_エラー表示 END IF( (object_id('tempdb..#PROC_エラーリセット') IS NOT NULL) AND OBJECTPROPERTY(object_id('tempdb..#PROC_エラーリセット'), 'IsProcedure') = 1 ) BEGIN PRINT '一時ストアドプロシージャ[#PROC_エラーリセット]削除します' DROP PROCEDURE #PROC_エラーリセット END GO -- ********************************************************** -- エラー値を表示するローカル一時ストアドプロシージャの登録 -- ********************************************************** CREATE PROCEDURE #PROC_エラー表示 @code int AS -- 0でないときにエラーが起きました IF( @code <> 0 ) BEGIN PRINT '' PRINT '直前の命令でエラーが発生しました。エラー番号=' + CAST(@code AS varchar) + 'です' END PRINT '' GO -- 上のバッチ操作でエラーが起きましたか? #PROC_エラー表示 @@ERROR GO -- ********************************************************** -- エラー値をリセットするローカル一時ストアドプロシージャの登録 -- ********************************************************** CREATE PROCEDURE #PROC_エラーリセット AS DECLARE @dum int -- エラー値をリセットするためには、 SELECT @dum = 0 -- 正常に終わる命令を実行すればよい GO -- 上のバッチ操作でエラーが起きましたか? #PROC_エラー表示 @@ERROR GO -- エラーリセット #PROC_エラーリセット PRINT '現在のERROR値の確認 = ' + CAST(@@ERROR AS varchar) PRINT '' GO -- テーブルが存在しないSELECT文の実行 SELECT id,id2 FROM #TMP_NO_EXIST GO -- エラーが起きましたか? #PROC_エラー表示 @@ERROR GO -- エラーリセット #PROC_エラーリセット PRINT 'エラーをリセットしました。現在のERROR値の確認 = ' + CAST(@@ERROR AS varchar) PRINT '' GO -- テーブルが存在しない INSERT INTO #TMP_NO_EXIST2 VALUES(1,2,3,4) GO -- エラーが起きましたか? #PROC_エラー表示 @@ERROR GO -- 一時ストアドプロシージャを削除する DROP PROCEDURE #PROC_エラー表示 DROP PROCEDURE #PROC_エラーリセット GO