Moje pytanie jest proste! Jak upuścić tymczasowo zapisaną procedurę, jeśli istnieje? Dzieje się tak, ponieważ podczas tworzenia tymczasowego SP w skrypcie, generuje on komunikat o błędzie: "W bazie danych znajduje się już obiekt o nazwie" #sp_name ", a drugi raz. Nie chcę pokazywać tej wiadomości użytkownikom. Proszę, pomóż mi. Twoje rozwiązanie jest wysoko cenione!Jak zrzucić tymczasowe SP, jeśli istnieje w Sql Server 2005
Odpowiedz
Procesy tymczasowe są upuszczane w taki sam sposób, jak trwałe procenty są usuwane. Zobacz kod poniżej:
-- Create test temp. proc
CREATE PROC#tempMyProc as
Begin
print 'Temp proc'
END
GO
-- Drop the above proc
IF OBJECT_ID('tempdb..#tempMyProc') IS NOT NULL
BEGIN
DROP PROC#tempMyProc
END
IF EXISTS (SELECT * FROM sys.procedures WHERE name = 'baz')
DROP PROCEDURE baz
Cześć Tom! Próbowałem twojego kodu. Ponieważ jest to Temporary Sp, nie spełnia warunku If. Nie wybierze SP. Dlatego nie upuści procedury. – salaiviswa
Czy możesz wyjaśnić, co masz na myśli przez Temporary? Jak go tworzysz? –
Ya! Tymczasowe procedury składowane oznaczają, że istnieją zapisane procedury w sesji. Zwykle jest to wyrażone jako #, po którym następuje nazwa SP. Aby uzyskać więcej informacji, proszę zapoznać się z witrynami msdn. – salaiviswa
- 1. Jak zdefiniować ENUM w SQL Server 2005?
- 2. Tymczasowe rozszerzenia do SQL Server
- 3. SQL Server SP - parametr Pass dla listy tablic "IN"?
- 4. Jak dołączyć do pola tekstowego w SQL Server 2005 SQL Server 2005
- 5. Zakres o CTE w SQL Server 2005
- 6. SQL Server 2005: Deadlock transakcji
- 7. Pomiń pierwszy wiersz w SQL Server 2005?
- 8. SQL Server 2005: Jak odjąć 6 miesięcy
- 9. dołączyć trzy tabele w SQL Server 2005
- 10. Hierarchiczne zapytania w SQL Server 2005
- 11. Korzystanie OPENROWSET dynamicznie pobierać wyników SP przy SP zawiera # tabele tymczasowe
- 12. Łączy ntext w programie SQL Server 2005
- 13. SQL Server 2005 ORDER BY z wyrazem
- 14. Sql server Integration Services kompatybilność 2008-2005
- 15. SQL Server 2005: Dlaczego transakcje nazw?
- 16. SQL Server 2005 implementacja MySQL REPLACE INTO?
- 17. Jak powinienem używać BIT w SQL Server 2005
- 18. Jak wstawić (zaktualizować lub wstawić) w SQL Server 2005
- 19. Jak uzyskać nazwę indeksu od IndexId w SQL Server 2005
- 20. Jak utworzyć unikalne ograniczenie złożone w SQL Server 2005?
- 21. Zapytanie Active Directory z SQL Server 2005
- 22. SQL Server 2005 - usuwanie wyzwalaczy tabel?
- 23. SQL Server 2005: Określ typ danych zmiennej
- 24. SQL Server 2005: zerowalny klucz obcy
- 25. Obliczona kolumna SQL Server 2005 jest utajniona
- 26. SQL Server 2005 Datownik Data Zapytanie
- 27. SQL Server 2005 - Sprawdź wartość zerową DateTime
- 28. Jak mapować uint w NHibernate z SQL Server 2005
- 29. jak znaleźć, kto blokuje, kto w SQL Server 2005
- 30. Jak znaleźć typy kolumn pochodnych widoku w SQL Server 2005?
Dzięki. To działa. Dziękuję Ram. Myślę, że All Temp SP przechowywane w bazach danych tempdb. Czy tak jest? Proszę wytłumacz mi. – salaiviswa
Serdecznie zapraszamy! ... tak, wszystkie tymczasowe obiekty (tabele, proc) utworzone za pomocą znaku # zostaną automatycznie utworzone w tempDB. Teraz istnieją inne typy w obiektach tymczasowych o nazwie globalne obiekty tymczasowe (utworzone za pomocą ## na froncie). Nawet te są tworzone w tempDB. – Ram
Ważne jest, aby użyć parametru IF OBJECT_ID ("tempdb .. # tempMyProc") NIE JEST NULL tutaj. Miałem generator kodu przy użyciu IF OBJECT_ID ("tempdb .. # tempMyProc")> 0 i ten kod nie powiedzie się w SQL Server 2012, ponieważ OBJECT_ID staje się ujemny. –