Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Escopo de tabelas temporárias no SQL Server


De CREATE TABLE :

As tabelas temporárias locais são visíveis apenas na sessão atual

e (mais importante):

Se uma tabela temporária local for criada em um procedimento armazenado ou aplicativo que pode ser executado ao mesmo tempo por vários usuários, o Mecanismo de Banco de Dados deve ser capaz de distinguir as tabelas criadas pelos diferentes usuários [sic - quase certamente isso deve diga sessões, não usuários] . O Mecanismo de Banco de Dados faz isso anexando internamente um sufixo numérico a cada nome de tabela temporária local.

O que refuta exatamente o ponto de quem disse que eles seriam compartilhados.

Além disso, não há necessidade de DROP TABLE no final do seu procedimento (no mesmo link novamente):

Uma tabela temporária local criada em um procedimento armazenado é descartada automaticamente quando o procedimento armazenado é concluído