SQL Server, ne peut pas vérifier si #de la table temporaire, si else

Je suis de la création d'un Déclencheur qui gère une table temporaire (#attributeType). Depuis le déclencheur peut être appelé plus d'une fois, je voulais être sûr et vérifier si la table temporaire #attributeType est toujours là.

C'est mon code dans le déclencheur corps qui vérifie la table temp:

IF OBJECT_ID('tempdb..#attributeType') IS NOT NULL
    BEGIN
        DROP TABLE #attributeType
        SELECT * INTO #attributeType
        FROM attributeType
        PRINT 'IN IF'+   CAST(OBJECT_ID('tempdb..#attributeType') AS NVARCHAR(80))
    END
ELSE
    BEGIN
        SELECT * INTO #attributeType
        FROM attributeType
        PRINT 'IN ELSE'+  CAST(OBJECT_ID('tempdb..#attributeType') AS NVARCHAR(80))
    END

Quand j'ai tester le code en le sélectionnant avec la touche F5 je reçois ce message d'erreur indiquant que le #attributeType de la table temporaire existent:

Msg 2714, Level 16, State 1, Line 11
There is already an object named '#attributeType' in the database.

Je sais que dans les procédures stockées de la #tempTables sera supprimé dès que la sp se termine, mais je ne peux pas comprendre pourquoi mon code est faux?

N. B.
Quand je commenter le bloc AUTRE que le code fonctionne.

OriginalL'auteur Luther | 2014-08-30