TRY/CATCH
Transaction In a TRY/CATCH
Section titled “Transaction In a TRY/CATCH”This will rollback both inserts due to an invalid datetime:
BEGIN TRANSACTIONBEGIN TRY INSERT INTO dbo.Sale(Price, SaleDate, Quantity) VALUES (5.2, GETDATE(), 1) INSERT INTO dbo.Sale(Price, SaleDate, Quantity) VALUES (5.2, 'not a date', 1) COMMIT TRANSACTIONEND TRYBEGIN CATCH THROW ROLLBACK TRANSACTIONEND CATCHThis will commit both inserts:
BEGIN TRANSACTIONBEGIN TRY INSERT INTO dbo.Sale(Price, SaleDate, Quantity) VALUES (5.2, GETDATE(), 1) INSERT INTO dbo.Sale(Price, SaleDate, Quantity) VALUES (5.2, GETDATE(), 1) COMMIT TRANSACTIONEND TRYBEGIN CATCH THROW ROLLBACK TRANSACTIONEND CATCHRemarks
Section titled “Remarks”TRY/CATCH is a language construct specific to MS SQL Server’s T-SQL.
It allows error handling within T-SQL, similar to that seen in .NET code.