Qual é a melhor maneira de determinar se uma tabela temporária existe no SQL Server?
-
08-06-2019 - |
Pergunta
Ao escrever um script T-SQL que estou pensando em voltar a correr, muitas vezes eu usar tabelas temporárias para armazenar dados temporários.Desde que a tabela temporária é criada no momento, eu gostaria de ser capaz de largar essa tabela somente, se ele existe (antes de criá-lo).
Eu vou postar o método que eu uso, mas eu gostaria de ver se há uma maneira melhor.
Solução
IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
DROP TABLE #TempTable
END
Outras dicas
A função OBJECT_ID retorna interna identificação do objeto para o objeto dado nome e tipo.'tempdb..#t1' refere-se à tabela #t1 no banco de dados tempdb.'U' é de 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)
)
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow