এক সাথে লেনদেনে অনেকগুলি পরিবর্তনrollback
এবং commit
- এটি কোনও স্বপ্ন নয়। এটা সম্ভব.
আপনার স্ক্রিপ্টের জন্য এখানে একটি মজুদ রয়েছে ( উন্নতির সাথে এমএসের নির্দেশিকাগুলি অনুসরণ করা ):
BEGIN TRANSACTION
BEGIN TRY
-- place your script in this TRY block
-- your DDL instructions:
ALTER TABLE1...
ALTER TABLE2...
-- data modifications:
EXEC('
UPDATE A
SET c1 = 23,
c2 = ''ZZXX'';
');
-- another DDL instruction:
ALTER TABLE2...
-- end of your script
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
-- If you want reraise an exception (to determine the reason of the exception)
-- just uncomment block with appropriate version:
-- SQL SERVER > 2012
/*
THROW;
*/
-- SQL SERVER < 2012 (tested against 2008 R2)
/*
DECLARE @ErrorMessage VARCHAR(MAX);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
RAISERROR (
@ErrorMessage, -- Message text.
@ErrorSeverity, -- Severity.
@ErrorState -- State.
);
*/
END CATCH;
IF @@TRANCOUNT > 0
COMMIT TRANSACTION;
GO
সাবধান, THROW
> শুধুমাত্র SQL সার্ভার সংস্করণ জন্য কাজ করে এখানে 2012 আপনার কাছ থেকে একটি সংস্করণ রূপান্তর করতে পারে semver করার বছর স্বরলিপি : http://sqlserverbuilds.blogspot.ru (সচেতন না .ru
ডোমেন, একটি ইংরেজি সংস্করণ রয়েছে)