Gewährleistet, dass eine Instanzstruktur eines Objekts existiert, bevor eine ALTER-Anweisung durchgeführt wird
sa_make_object( Objekttyp, Objektname [, Eigentümer [, Tabellenname ] ] )
Objekttyp: 'procedure' | 'function' | 'view' | 'trigger' | 'service' | 'event'
Objekttyp Verwenden Sie diesen CHAR(30)-Parameter, um den Typ des zu erstellenden Objekts anzugeben. Wenn der Objekttyp 'trigger' ist, gibt dieses Argument den Eigentümer der Tabelle an, für die der Trigger erstellt werden soll.
Objektname Verwenden Sie diesen CHAR(128)-Parameter, um den Namen des zu erstellenden Objekts anzugeben.
Eigentümer Verwenden Sie diesen CHAR(128)-Parameter, um den Eigentümer des zu erstellenden Objekts anzugeben. Der Standardwert ist CURRENT USER.
Tabellenname Dieser CHAR(128)-Parameter ist nur nötig, wenn der Objekttyp "trigger" ist. In diesem Fall verwenden Sie ihn, um den Namen der Tabelle anzugeben, für die der Trigger erstellt wird.
Diese Prozedur ist in Skripten oder Befehlsdateien sinnvoll, die wiederholt ausgeführt werden, um das Datenbankschema zu erstellen oder zu ändern. Ein allgemeines Problem dieser Skripten besteht darin, dass bei der ersten Ausführung eine CREATE-Anweisung ausgeführt werden muss, bei jedem weiteren Ausführen jedoch eine ALTER-Anweisung. Diese Prozedur vermeidet die Notwendigkeit des Durchsuchens der Systemansichten, um herauszufinden, ob dieses Objekt existiert.
Um diese Prozedur zu verwenden, stellen Sie ihr eine ALTER-Anweisung nach, die die gesamte Objektbeschreibung beinhaltet.
Zum Erstellen oder Ändern von Datenbankobjekten ist die Ressource-Datenbankberechtigung erforderlich.
Automatisches Festschreiben (Autocommit).
Die folgenden Anweisungen stellen sicher, dass eine Grundstruktur einer Prozedurdefinition erstellt wird, definieren die Prozedur und erteilen Berechtigungen für sie. Eine Befehlsdatei, die diese Instruktionen enthält, kann mehrfach auf einer Datenbank ausgeführt werden, ohne dabei einen Fehler hervorzurufen.
CALL sa_make_object( 'procedure','myproc' ); ALTER PROCEDURE myproc( in p1 INT, in p2 CHAR(30) ) BEGIN // ... END; GRANT EXECUTE ON myproc TO public; |
Im Folgenden wird die Systemprozedur sa_make_object verwendet und die Grundstruktur eines Webdienstes hinzugefügt.
CALL sa_make_object( 'service','my_web_service' ); |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |