Anda tidak menggunakan temp tabel, Anda menggunakan variable meja. Ada perbedaan.
Tabel sementara berfungsi dengan transaksi, tabel variabel tidak. Lihat https://blog.sqlauthority.com/2009/12/28/sql-server-difference-temp-table-and-table-variable-effect-of-transaction/
Jika Anda mengubah tabel variabel @tab ke tabel sementara #tab , Anda akan mendapatkan perilaku yang diinginkan.
Perbedaan antara tabel temp dan variabel:https://dba.stackexchange.com/questions/16385/whats-the-difference-between-a-temp-table-and-table-variable-in- sql-server/16386#16386
Tautan yang saya posting di atas membahasnya dengan lebih detail daripada yang saya bisa.