SQL
VERSUCHEN / FANGEN
Suche…
Bemerkungen
TRY / CATCH ist ein für T SQL von MS SQL Server spezifisches Sprachkonstrukt.
Es ermöglicht die Fehlerbehandlung innerhalb von T-SQL, ähnlich wie in .NET-Code.
Transaktion in einem TRY / CATCH
Dadurch werden beide Inserts aufgrund einer ungültigen Datumszeit zurückgesetzt:
BEGIN TRANSACTION
BEGIN 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 TRANSACTION
END TRY
BEGIN CATCH
THROW
ROLLBACK TRANSACTION
END CATCH
Dadurch werden beide Einfügungen festgelegt:
BEGIN TRANSACTION
BEGIN 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 TRANSACTION
END TRY
BEGIN CATCH
THROW
ROLLBACK TRANSACTION
END CATCH
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow