Nepoužíváte temp
tabulky, používáte variable
stůl. Je v tom rozdíl.
Dočasné tabulky pracují s transakcemi, tabulky proměnných nikoli. Viz http://blog.sqlauthority.com/2009/12/28/sql-server-difference-temp-table-and-table-variable-effect-of-transaction/
Pokud byste změnili tabulku proměnných @tab
do dočasné tabulky #tab
, získáte požadované chování.
Rozdíly mezi tabulkami temp a proměnnými:https://dba.stackexchange.com/questions/16385/whats-the-difference-between-a-temp-table-and-table-variable-in- sql-server/16386#16386
Odkazy, které jsem zveřejnil výše, to procházejí podrobněji, než jsem mohl.