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




技術評論社の書籍ガイドへ
上巻:ISBN4-7741-0965-7

ウィンドウを閉じる


(株)日本技術ソフト開発 責任編集:堀川 明
MSDE FunClubに関するご意見・ご要望等ございましたら、 msdefun@horikawa.ne.jp までご連絡下さい。
HOME: http://www.horikawa.ne.jp/msde/


MSDE FunClubの運営は、マイクロソフト社とは一切の関係はありません