Wiem, że to musi być proste, ale jak poprzedzić tworzenie funkcji sprawdzeniem, czy już istnieje? Jeśli istnieje, chcę go usunąć i odtworzyć.
tsql
sql-server-2000
DavidStein
źródło
źródło
Możesz również sprawdzić nazwę w sysobjects
Właściwie, jeśli funkcja może być funkcją tabeli, musisz użyć
źródło
Działa to dla każdego obiektu, nie tylko funkcji:
następnie po prostu dodaj swój smak obiektu, jak w:
źródło
Masz dwie opcje upuszczenia i ponownego utworzenia procedury w programie SQL Server 2016.
Począwszy od SQL Server 2016 - użyj
IF EXISTS
Począwszy od dodatku SP1 dla programu SQL Server 2016 - użyj
OR ALTER
źródło
źródło
Zwykle unikam zapytań z tabel typu sys *, dostawcy mają tendencję do zmieniania ich między wydaniami, głównymi lub innymi. Zawsze robiłem, aby wydać
DROP FUNCTION <name>
instrukcję i nie martwić się o żaden błąd SQL, który może powrócić. Uważam tę standardową procedurę w dziedzinie DBA.źródło
Od
SQL Server 2016 CTP3
można korzystać z nowych Die oświadczenia zamiast dużychIF
owijarkiSkładnia:
Pytanie:
Więcej informacji tutaj
źródło
źródło
Oto moje podejście do tego:
źródło
Sprawdź, czy funkcjonuje, jeśli istnieje
Sprawdź, czy istnieje procedura składowana, funkcja również, klikając poniższy link http://www.gurujipoint.com/2017/05/check-if-exist-for-trigger-function-and.html
źródło
Jeśli chcesz używać standardu SQL ISO INFORMATION_SCHEMA, a nie specyficznego dla programu SQL Server
sysobjects
, możesz to zrobić:źródło