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