Ich weiß, dass dies einfach sein muss, aber wie kann ich der Erstellung einer Funktion eine Prüfung voranstellen, um festzustellen, ob sie bereits vorhanden ist? Wenn es existiert, möchte ich es löschen und neu erstellen.
tsql
sql-server-2000
DavidStein
quelle
quelle
Sie können den Namen auch in sysobjects nachschlagen
Wenn die Funktion eine Tabellenfunktion sein könnte, müssen Sie sie tatsächlich verwenden
quelle
Dies funktioniert für jedes Objekt, nicht nur für Funktionen:
Fügen Sie dann einfach Ihren Objektgeschmack hinzu, wie in:
quelle
Sie haben zwei Möglichkeiten, die Prozedur in SQL Server 2016 zu löschen und neu zu erstellen.
Ab SQL Server 2016 - verwenden
IF EXISTS
Ab SQL Server 2016 SP1 - verwenden
OR ALTER
quelle
quelle
Normalerweise scheue ich mich vor Abfragen aus Tabellen vom Typ sys *. Anbieter neigen dazu, diese zwischen Hauptversionen, Hauptversionen oder auf andere Weise, zu ändern. Was ich immer getan habe, ist, die
DROP FUNCTION <name>
Anweisung auszugeben und mich nicht um einen SQL-Fehler zu sorgen, der möglicherweise erneut auftritt. Ich betrachte dieses Standardverfahren im DBA-Bereich.quelle
Von können
SQL Server 2016 CTP3
Sie neue DIE- Anweisungen anstelle von großenIF
Wrappern verwendenSyntax :
Abfrage:
Mehr Infos hier
quelle
quelle
Hier ist meine Meinung dazu:
quelle
Überprüfen Sie, ob die Funktion vorhanden ist
Überprüfen Sie, ob eine gespeicherte Prozedur vorhanden ist, und klicken Sie auf den folgenden Link: http://www.gurujipoint.com/2017/05/check-if-exist-for-trigger-function-and.html
quelle
Wenn Sie den SQL-ISO-Standard INFORMATION_SCHEMA und nicht den SQL Server-spezifischen Standard verwenden möchten
sysobjects
, können Sie Folgendes tun:quelle