| MSDE FunClub |
|
最終更新日 : 2000/08/08 |
|
Microsoft Data Engine FunClub
|
Since 2000.08.08
|
|
SQLServer7.0/MSDE 完全トレーニングテキスト(上巻) |
|
【第3章232p 〜 233p掲載】 |
-- [SQL03_04.SQL]
-- SQLServer7.0 Transact-SQL言語
-- 日本技術ソフト開発 堀川 明
-- http://www.horikawa.ne.jp/msde/
--
-- このSQLプログラムは、
-- RAISERROR命令によるメッセージの表示を学ぶものです
--
-- これから操作する既定のデータベースを MySampleTest にします
USE MySampleTest
GO
-- ( 件処理されました)の表示を抑制する
SET NOCOUNT ON
GO
-- 書式付き動的エラーメッセージの作成
DECLARE @Dat int , @LEVEL int , @DatStr varchar(20)
SELECT @Dat = 10
-- エラー重要度を0-10までは、付属メッセージが抑止される
RAISERROR( '@Dat(%%d)=[%d] [%5d] [%05d]',0,1,@Dat,@Dat,@Dat)
RAISERROR( '@Dat(%%o)=[%o] [%5o] [%05o]',0,1,@Dat,@Dat,@Dat)
RAISERROR( '@Dat(%%x)=[%x] [%5x] [%05x]',0,1,@Dat,@Dat,@Dat)
RAISERROR( 'エラー重要度を0にしました' ,0,1)
PRINT ''
SELECT @LEVEL = 0
WHILE (@LEVEL<=18)
BEGIN
RAISERROR( '%2d:重要度で表示しました' ,@LEVEL,1,@LEVEL)
SELECT @LEVEL = @LEVEL + 1
END
-- SQLServerのVERSION表示
PRINT '' --改行
RAISERROR( 'SQLServerのversion = %s' ,0,1,@@VERSION)
PRINT '' --改行
SELECT @DatStr = CONVERT(varchar(20),GETDATE())
RAISERROR( '現在の時刻 = %s',0,1,@DatStr)
PRINT ''
GO
-- ***********************************************************
-- 【メッセージのシステムテーブルへの登録】
-- (1)英語版に引数順序を定義する
-- (2)日本語版は、%1!,%2!,%3!のように位置を定義する
-- (3)英語版と日本語版の両方のメッセージ登録が必要
-- 言語名(@lang)のパラメータは、sp_addmessageの中で呼ばれる
-- sp_validlangのソースを見てください。
-- master..syslanguagesで登録されたnameまたはaliasの値です
-- ***********************************************************
EXECUTE sp_addmessage 50001 , 16 , N'dummy' , 'us_english' , 'FALSE'
EXECUTE sp_addmessage 50001 , 16 , N'引数なしのメッセージ' , '日本語' , 'FALSE'
EXECUTE sp_addmessage 50002 , 16 , N'message = %d ' , 'us_english', 'FALSE'
EXECUTE sp_addmessage 50002 , 16 , N'引数が1個です =[%1!]' , '日本語', 'FALSE'
EXECUTE sp_addmessage 50003 , 16 , N'%s = %d ' , 'us_english', 'FALSE'
EXECUTE sp_addmessage 50003 , 16 , N'引数の値は [%1!]=[%2!]' , '日本語' , 'FALSE'
-- 重要度を変えて出力する
RAISERROR( 50001,0,1)
RAISERROR( 50002,0,1,1234)
RAISERROR( 50003,0,1,'DATA' , 3456 )
-- 登録したメッセージを削除する
EXECUTE sp_dropmessage 50001 , 'all'
EXECUTE sp_dropmessage 50002 , 'all'
EXECUTE sp_dropmessage 50003 , 'all'
GO