Sql-Server

我可以更改事務中的表結構,然後在出現錯誤時將其回滾嗎?

  • July 28, 2020

我有一些ALTER TABLE我正在執行的語句。並非所有這些都有效(它們是執行 SQL 數據比較的結果),我想將它們分組到一些事務中,並在出現問題時回滾語句。

這是可能的,還是只有可以回滾的數據?

  BEGIN TRANSACTION
     BEGIN TRY
       ALTER TABLE1...
       ALTER TABLE2...
       -- Additional data/structural changes
       COMMIT
     END TRY
     BEGIN CATCH
        ROLLBACK;
        THROW; -- Only if you want reraise an exception (to determine the reason of the exception)
     END CATCH

是的,這是可能的。

大多數 DDL 語句可以在 SQL Server 中回滾(有一些例外,例如CREATE DATABASE

引用自:https://dba.stackexchange.com/questions/24883