У меня есть 2 SQL-сервера.SQL Server Transaction
Delete from hello where id=1
Insert into hello name,age
select name ,age from welcome
Если какой-либо из них неисправен. Нет удаления или вставки.
Я попытался с транзакцией
Begin Tran
Delete from hello where id=1
Insert into hello (name,age)
select name ,age from welcome
Commit Tran
Но если ни один ушел неправильно .Другие один committed.Am я что-то отсутствует.
2 delete statements
BEGIN TRY
BEGIN TRAN;
delete from hello where id=1
delete from hello where id=19 // here id=19 doesn't exist
COMMIT TRAN;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK;
THROW;
END CATCH;
Здесь id = 19 не существует, поэтому он должен откатываться, но он удаляет id = 1. Оно совершается вместо rollback.What я должен делать в этом Scenerio ..
См [Базовый шаблон для операций в SQLServer] (http://stackoverflow.com/questions/290668/basic-template-for-transactions-in-sqlserver) –
Спасибо за полезную информацию Alex – havin