代わりに、T-SQL の try-catch を使用できます。ただし、これがサーバーにどのような悪影響を与えるかはわかりません。
SQL:
DECLARE @intVar VARCHAR(MAX), @stringVar VARCHAR(MAX), @default_value INT, @tempVar INT
SET @default_value = NULL
SET @stringVar = 'Hello World!!'
SET @intVar = '550'
PRINT 'Casting @stringVar: '
BEGIN TRY
SET @tempVar = CAST(@stringVar AS INT)
END TRY
BEGIN CATCH
SET @tempVar = @default_value
END CATCH
PRINT @tempVar + 20
PRINT ''
PRINT 'Casting @intVar: '
BEGIN TRY
SET @tempVar = CAST(@intVar AS INT)
END TRY
BEGIN CATCH
SET @tempVar = @default_value
END CATCH
PRINT @tempVar
出力:
@stringVar のキャスト:
キャスト @intVar: 550
さらに、varchar inputString と整数を返す int default_value を受け入れる try catch ステートメント用のユーザー定義関数を作成します。