Не използвате temp
таблица, вие използвате variable
маса. Има разлика.
Временните таблици работят с транзакции, а променливите не. Вижте http://blog.sqlauthority.com/2009/12/28/sql-server-difference-temp-table-and-table-variable-effect-of-transaction/
Ако промените вашата таблица с променливи @tab
към временна таблица на #tab
, ще получите желаното поведение.
Разлики между временни и променливи таблици:https://dba.stackexchange.com/questions/16385/whats-the-difference-between-a-temp-table-and-table-variable-in- sql-сървър/16386#16386
Връзките, които публикувах по-горе, разглеждат това с повече подробности, отколкото бих могъл.