Date: Mon, 27 May 2002 10:11:54 +0900
From: "Takahashi Kazuhiko" <who@example.co.jp>
こんにちは。高橋@キヤノンです。
型変換を実行するストアドプロシージャを書いています。
型変換が成功した場合は、"Success" , 失敗した場合は、
"Failture" を表示させたいと考えています。
困っている点は、CAST() が失敗すると、T-SQL スクリプトの実行が
停止してしまうことです。たとえば、文字列から数字に変換する
以下のストアドプロシージャの場合、
CREATE PROCEDURE sp_atoi
@ascii varchar(100) = '',
@integer int OUTPUT
AS
set @integer = CAST(@ascii AS int)
IF (@@error <> 0) Print 'Failture'
ELSE Print 'Success'
GO
declare @x int
-- (1)
exec sp_atoi @ascii='1234', @integer=@x output
-- (2)
exec sp_atoi @ascii='abcd', @integer=@x output
(1)は 正しく動作して、'Success' と表示されます。しかし、
(2)は 'Success' も 'Failture' のどちらも 表示されません。
CAST 文 以降が実行されないのです。
CAST が失敗したかどうかを判断するためには、どのように
すればよいのでしょうか。よろしくお願いします。
-----------------------------------------
開発環境 : SQL2000 + Win2000Pro + VC6
高橋 和彦
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|