Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Warum funktioniert Rollback für Variablentabellen in SQL Server 2012 nicht?

Sie verwenden kein temp Tabelle verwenden Sie eine variable Tisch. Es gibt einen Unterschied.

Temp-Tabellen funktionieren mit Transaktionen, Variablentabellen nicht. Siehe http://blog.sqlauthority.com/2009/12/28/sql-server-difference-temp-table-and-table-variable-effect-of-transaction/

Wenn Sie Ihre Variablentabelle ändern @tab in eine temporäre Tabelle von #tab , würden Sie Ihr gewünschtes Verhalten erhalten.

Unterschiede zwischen temporären und variablen Tabellen:https://dba.stackexchange.com/questions/16385/whats-the-difference-between-a-temp-table-and-table-variable-in- sql-server/16386#16386

Die Links, die ich oben gepostet habe, gehen das detaillierter durch, als ich könnte.