Quelle est la meilleure façon de déterminer si une table temporaire existe dans SQL Server?

voix
18

Lors de l'écriture d'un script T-SQL que je prévois, souvent des temps de réexécution j'utiliser des tables temporaires pour stocker des données temporaires. Étant donné que la table temporaire est créée à la volée, je voudrais être en mesure de déposer cette table que si elle existe (avant que je le crée).

Je posterai la méthode que je l'utilise, mais je voudrais voir s'il y a une meilleure façon.

Créé 05/08/2008 à 19:18
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
25

IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
    DROP TABLE #TempTable
END
Créé 05/08/2008 à 19:21
source utilisateur

voix
14

La fonction retourne OBJECT_ID l'ID d'objet interne pour le nom de l'objet donné et le type. 'Tempdb .. # t1' se réfère à la table # t1 dans la base de données tempdb. « U » pour la table est 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)
)
Créé 05/08/2008 à 19:21
source utilisateur

voix
0
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
Créé 17/09/2008 à 21:50
source utilisateur

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