Я хотел бы написать сценарий SQL, который выполняет несколько отдельных операторов SQL; если какое-либо из этих утверждений окажется неудачным, я бы хотел откатить всю транзакцию. Итак, что-то вроде:
BEGIN TRANSACTION
insert into TestTable values (1)
insert into TestTable values (2)
insert into TestTabe values (3)
--if any of the statements fail
ROLLBACK
--else
COMMIT
Это для MS SQL 2008. Что я могу сделать для этого? Возможно, какая-то обработка исключений?
Я понимаю, что в моем примере я мог бы проверить TestTable на предмет этих значений и определить, не прошли ли операторы таким образом. Но на самом деле мой SQL будет намного сложнее, и я бы предпочел абстрагироваться от знания того, что делает SQL.