エラーが発生した場合は、ロールバックオプションを使用して一連の行を挿入しています。
BEGIN TRY
BEGIN TRANSACTION
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
COMMIT TRAN -- Transaction Success!
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRAN --RollBack
END CATCH
C#では、forループに行を挿入しています。ここでも同じ機能を実現することは可能ですか?
foreach(string lst in str[])
{
//insert query
dbl.ExecSqlNonQuery("sp_tbltest", CommandType.StoredProcedure);
}
ループでエラーが発生した場合、すべての行がロールバックする必要があります。