Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Systemobjekte » Systemprozeduren » Alphabetische Liste der Systemprozeduren

 

sa_make_object-Systemprozedur

Gewährleistet, dass eine Instanzstruktur eines Objekts existiert, bevor eine ALTER-Anweisung durchgeführt wird

Syntax
sa_make_object( 
  Objekttyp,
  Objektname
  [, Eigentümer
  [, Tabellenname ]  ] 
)
Objekttyp:
'procedure' 
| 'function' 
| 'view' 
| 'trigger' 
| 'service'
| 'event'
Argumente
  • 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.

Bemerkungen

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.

Berechtigungen

Zum Erstellen oder Ändern von Datenbankobjekten ist die Ressource-Datenbankberechtigung erforderlich.

Nebenwirkungen

Automatisches Festschreiben (Autocommit).

Siehe auch
Beispiele

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' );