文書の過去の版を表示しています。
ISNUMERIC関数は16進文字列を正しくチェックできない場合がある
DECLARE @HexVal VARCHAR(4) SET @HexVal = '1E34' IF ISNUMERIC(@HexVal) = 1 BEGIN SELECT CAST(@HexVal AS INT) END ELSE BEGIN PRINT '数値以外です。(' + @HexVal + ')' END
実行結果:
メッセージ 245、レベル 16、状態 1、行 6 varchar の値 '1E34' をデータ型 int に変換できませんでした。
DECLARE @HexVal VARCHAR(4) SET @HexVal = 'E234' IF ISNUMERIC(@HexVal) = 1 BEGIN SELECT CAST(@HexVal AS INT) END ELSE BEGIN PRINT '数値以外です。(' + @HexVal + ')' END
実行結果:
数値以外です。(E234)