MSDE FunClub | 最終更新日 : 2000/08/08 | |
Microsoft Data Engine FunClub |
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(上巻) | ||
【第3章240p 〜 241p掲載】 |
-- [SQL03_05.SQL] -- SQLServer7.0 Transact-SQL言語 -- 日本技術ソフト開発 堀川 明 -- http://www.horikawa.ne.jp/msde/ -- -- このSQLプログラムは、 -- FORMATMESSAGE命令によるメッセージ文字列の取得方法を -- 学ぶものです -- -- これから操作する既定のデータベースを MySampleTest にします USE MySampleTest GO -- ( 件処理されました)の表示を抑制する SET NOCOUNT ON GO -- ****************************************************** -- 1) sysmessagesテーブルに登録されている最大の番号を取得 -- 2) ユーザ定義のメッセージを登録します -- ****************************************************** DECLARE @MAXNO INT , @SETNO INT SELECT @MAXNO = MAX( [error] ) FROM master.dbo.sysmessages -- PRINT '現在登録済み最大エラー番号 = ' + CAST( @MAXNO AS CHAR ) -- これから登録を行なうエラー番号を決定する IF( @MAXNO < 50000 ) SELECT @SETNO = 50001 ELSE SELECT @SETNO = @MAXNO + 1 -- PRINT '設定するエラー番号 = ' + CAST(@SETNO AS CHAR) -- ユーザ定義エラーメッセージを登録します EXECUTE sp_addmessage @SETNO , 16 , N'%s = %d ' , 'us_english', 'FALSE' EXECUTE sp_addmessage @SETNO , 16 , N'私の名前は %1! です。年は %2! です。' , '日本語' , 'FALSE' -- バッチ処理をここで区切るので、@SETNOの値を -- 一時テーブルに入れて保存します CREATE TABLE #SETNO_SAVE( DATA INT ) INSERT INTO #SETNO_SAVE VALUES( @SETNO ) GO -- ****************************************************** -- エラーメッセージを文字列に取得して編集を行なう -- ****************************************************** DECLARE @SETNO INT SELECT @SETNO = DATA FROM #SETNO_SAVE -- メッセージ番号の取得 -- FORMATMESSAGE命令による登録メッセージ内容の取得 DECLARE @MSG VARCHAR(80) SELECT @MSG = FORMATMESSAGE( @SETNO , '堀川' , 24 ) -- 取得したメッセージ内容を編集します SELECT @MSG = @MSG + 'ほんと???' -- 編集した内容を出力します。PRINT文やRAISERRORで出力します RAISERROR( '%s' , 0 , 1 , @MSG ) GO -- ******************* -- 終了処理を行なう -- ******************* -- 登録したユーザ定義メッセージを削除します DECLARE @SETNO INT SELECT @SETNO = DATA FROM #SETNO_SAVE -- PRINT '登録したエラーメッセージ番号 = ' + CAST(@SETNO AS CHAR) -- メッセージの削除 EXECUTE sp_dropmessage @SETNO , 'all' -- 一時テーブルを削除します DROP TABLE #SETNO_SAVE GO