No estás usando un temp
tabla, está utilizando una variable
mesa. Hay una diferencia.
Las tablas temporales funcionan con transacciones, las tablas variables no. Consulte http://blog.sqlauthority.com/2009/12/28/sql-server-difference-temp-table-and-table-variable-effect-of-transaction/
Si tuviera que cambiar su tabla de variables @tab
a una tabla temporal de #tab
, obtendrá el comportamiento deseado.
Diferencias entre tablas temporales y variables:https://dba.stackexchange.com/questions/16385/cuál-es-la-diferencia-entre-una-tabla-temporal-y-tabla-variable-en- servidor-sql/16386#16386
Los enlaces que publiqué anteriormente analizan eso con más detalle de lo que pude.