| MSDE FunClub |
|
最終更新日 : 2000/08/08 |
|
Microsoft Data Engine FunClub
|
Since 2000.08.08
|
|
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