これは可能ではないかもしれないと感じましたが、ここに行きます...トランザクションを失敗させることなく、SQLトリガーのハンドルエラー?
私はそれに挿入トリガを持っているテーブルを持っています。データがこのテーブルに挿入されると、トリガーが起動して長いvarbinary列を解析します。このトリガーは、バイナリ・データに対していくつかの操作を実行し、複数のエントリを2番目の表に書き込みます。
私が最近発見したことは、バイナリデータが「正しい」ものではないことです(つまり、これは何の制御もしていません)。キャストエラーなどが発生する可能性があります。
私の最初の反応は、TRY/CATCHブロックで物を包むことでしたが、CATCHの実行によってトランザクションが破棄され、「トリガで破棄されたトランザクション」エラーが発生するため、解決策ではないようです。
データがまだ最初のテーブルに書き込まれていることは必須ではありません。データが2番目のテーブルに書き込まれるかどうかは気にしません。
これを達成できるかどうかはわかりませんが、喜んでアドバイスを受け取ります。
価値があるショット、アイデアのおかげで。 – Valerion
はい、このアイデアはうまくいきました - それぞれの文字が '1'、 '2'、 '3'などであるかどうかを調べるための少しの機能 - いずれの時点でも0を返す場合は0を返しますキャストの結果を返します。仕事をうまくやっているようだ! – Valerion
@Valerion - IsNumeric()関数を見たいかもしれませんが、あなたの必要にあまりにも鈍いかもしれません。 – ahains