Qual è il modo migliore per determinare se esiste una tabella temporanea in SQL Server?
-
08-06-2019 - |
Domanda
Quando scrivo uno script T-SQL che intendo rieseguire, spesso utilizzo tabelle temporanee per archiviare dati temporanei.Poiché la tabella temporanea viene creata al volo, mi piacerebbe poter eliminare quella tabella solo se esiste (prima di crearla).
Pubblicherò il metodo che utilizzo, ma mi piacerebbe vedere se esiste un modo migliore.
Soluzione
IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
DROP TABLE #TempTable
END
Altri suggerimenti
La funzione OBJECT_ID restituisce l'ID dell'oggetto interno per il nome e il tipo di oggetto specificati.'tempdb..#t1' si riferisce alla tabella #t1 nel database tempdb.'U' è per la tabella definita dall'utente.
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'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow