Ποιος είναι ο καλύτερος τρόπος για να διαπιστώσετε αν υπάρχει μια προσωρινή πίνακα του SQL Server;

ψήφοι
18

Όταν γράφετε ένα T-SQL script που έχω σχέδιο για την εκ νέου σε λειτουργία, πολλές φορές μπορώ να χρησιμοποιήσω προσωρινούς πίνακες για την αποθήκευση προσωρινών δεδομένων. Δεδομένου ότι ο πίνακας temp έχει δημιουργηθεί σχετικά με την πετάξει, θα ήθελα να είναι σε θέση να ρίξει αυτό το τραπέζι μόνο αν υπάρχει (πριν τη δημιουργία της).

Θα πάρω μετά τη μέθοδο που χρησιμοποιώ, αλλά θα ήθελα να δω αν υπάρχει ένας καλύτερος τρόπος.

Δημοσιεύθηκε 05/08/2008 στις 19:18
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
25

IF Object_Id('TempDB..#TempTable') IS NOT NULL
BEGIN
    DROP TABLE #TempTable
END
Απαντήθηκε 05/08/2008 στις 19:21
πηγή χρήστη

ψήφοι
14

Η object_id επιστρέφει την εσωτερική ταυτότητα αντικειμένου για το όνομα αντικειμένου και τον τύπο. 'Tempdb .. # t1' αναφέρεται στον πίνακα # t1 στη βάση δεδομένων tempdb. «U» είναι για το τραπέζι του καθορίζονται από το χρήστη.

IF OBJECT_ID('tempdb..#t1', 'U') IS NOT NULL
  DROP TABLE #t1

CREATE TABLE #t1
(
  id INT IDENTITY(1,1),
  msg VARCHAR(255)
)
Απαντήθηκε 05/08/2008 στις 19:21
πηγή χρήστη

ψήφοι
0
SELECT name
FROM sysobjects
WHERE type = 'U' AND name = 'TempTable'
Απαντήθηκε 17/09/2008 στις 21:50
πηγή χρήστη

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