Quelle est la meilleure façon de déterminer si une table temporaire existe dans SQL Server ?
-
08-06-2019 - |
Question
Lorsque j'écris un script T-SQL que je prévois de réexécuter, j'utilise souvent des tables temporaires pour stocker des données temporaires.Étant donné que la table temporaire est créée à la volée, j'aimerais pouvoir supprimer cette table uniquement si elle existe (avant de la créer).
Je publierai la méthode que j'utilise, mais j'aimerais voir s'il existe une meilleure façon.
La solution
IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
DROP TABLE #TempTable
END
Autres conseils
La fonction OBJECT_ID renvoie l'identifiant d'objet interne pour le nom et le type d'objet donnés.'tempdb..#t1' fait référence à la table #t1 dans la base de données tempdb.« U » correspond à une table définie par l'utilisateur.
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'
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow