Qual é a melhor maneira de determinar se uma tabela temporária existe no SQL Server?

votos
18

Ao escrever um script T-SQL que estou pensando em re-executar, muitas vezes eu uso tabelas temporárias para armazenar dados temporários. Desde a tabela temporária é criada na mosca, eu gostaria de ser capaz de soltar que a tabela somente se ele existe (antes de criá-lo).

Vou postar o método que eu uso, mas eu gostaria de ver se há uma maneira melhor.

Publicado 05/08/2008 em 19:18
fonte usuário
Em outras línguas...                            


3 respostas

votos
25

IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
    DROP TABLE #TempTable
END
Respondeu 05/08/2008 em 19:21
fonte usuário

votos
14

A função OBJECT_ID retorna o identificador interno do objeto para o nome do objeto dado e tipo. 'Tempdb .. # t1' refere-se à tabela # t1 no banco de dados tempdb. 'U' é para a tabela definida pelo usuário.

IF OBJECT_ID('tempdb..#t1', 'U') IS NOT NULL
  DROP TABLE #t1

CREATE TABLE #t1
(
  id INT IDENTITY(1,1),
  msg VARCHAR(255)
)
Respondeu 05/08/2008 em 19:21
fonte usuário

votos
0
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
Respondeu 17/09/2008 em 21:50
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more