Die ALTER PROCEDURE-Anweisung muss die vollständige neue Prozedur enthalten. PROC kann als Synonym für PROCEDURE verwendet
werden.
Syntax 1
Die ALTER PROCEDURE-Anweisung unterscheidet sich in der Syntax nur durch das erste Wort von der CREATE PROCEDURE-Anweisung.
Sowohl Watcom- als auch Transact-SQL-Dialektprozeduren können mithilfe von ALTER PROCEDURE geändert werden.
Mit ALTER PROCEDURE werden vorhandene Privilegien für die Prozedur nicht geändert. Beim Ausführen von DROP PROCEDURE, gefolgt
von CREATE PROCEDURE, werden EXECUTE-Privilegien neu zugeordnet.
Syntax 2
Sie können SET HIDDEN verwenden, um die Definition der zugehörigen Prozedur zu verschleiern und somit unlesbar zu machen.
Die Prozedur kann aus Ihrer Datenbank entladen und in andere Datenbanken geladen werden.
Wenn SET HIDDEN verwendet wird, ist die Definition der Prozedur bei der Fehlerbehandlung mit dem Debugger nicht zu sehen und
sie wird auch nicht in den Prozedurprofilen angezeigt.
Es ist nicht möglich, Syntax 2 mit Syntax 1 zu kombinieren.
Hinweis
Diese Einstellung ist irreversibel. Es wird empfohlen, die ursprüngliche Prozedurdefinition außerhalb der Datenbank aufzubewahren.
Syntax 3
Verwenden Sie die RECOMPILE-Syntax, um eine gespeicherte Prozedur neu zu kompilieren. Wenn Sie eine Prozedur neu kompilieren,
wird die im Katalog gespeicherte Definition neuerlich syntaktisch analysiert und die Syntax wird geprüft. Bei Prozeduren,
die eine Ergebnismenge generieren, aber keine RESULT-Klausel einbeziehen, versucht der Datenbankserver, die Eigenschaften
der Ergebnismenge für die Prozedur zu bestimmen, und speichert die Informationen im Katalog. Dies kann sinnvoll sein, wenn
eine von der Prozedur referenzierte Tabelle durch Hinzufügen, Entfernen oder Umbenennen von Spalten geändert wurde, seit die
Prozedur erstellt wurde.
Die Prozedurdefinition wird durch Neukompilierung nicht geändert. Sie können Prozeduren mit durch die SET HIDDEN-Klausel ausgeblendeten
Definitionen neu kompilieren, die Definitionen bleiben aber verborgen.
SQL/2008
Erweiterung des Herstellers. ALTER PROCEDURE ist die optionale SQL-Sprachenfunktion F381 des SQL/2008-Standards. Im SQL-Standard
kann ALTER PROCEDURE jedoch nicht dazu verwendet werden, die Definition einer gespeicherten Prozedur neu festzulegen, und
Transact-SQL-Dialektprozeduren werden nicht unterstützt. SQL/2008 umfasst keine Unterstützung für SET HIDDEN oder RECOMPILE.