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_check_commit-Systemprozedur

Überprüft vor dem Festschreiben, ob Verletzungen der referenziellen Integrität vorhanden sind

Syntax
sa_check_commit( 
Tabellenname, 
Schlüsselname 
)
Argumente
  • Tabellenname   Ein VARCHAR(128)-Parameter, der den Namen einer Tabelle mit einer Zeile enthält, die derzeit die referenzielle Integrität verletzt

  • Schlüsselname   Ein VARCHAR(128)-Parameter, der den Namen des entsprechenden Fremdschlüssel-Indexes enthält

Bemerkungen

Wenn die Datenbankoption wait_for_commit auf ON gesetzt ist oder ein Fremdschlüssel mithilfe von CHECK ON COMMIT in der Anweisung CREATE TABLE definiert wurde, können Sie die Datenbank auch dann aktualisieren, wenn dadurch die referenzielle Integrität verletzt wird, sofern Sie diese Verletzungen vor dem Festschreiben der Änderungen beseitigen.

Sie können mithilfe der Systemprozedur sa_check_commit überprüfen, ob es bestehende Verletzungen der referenziellen Integrität gibt, bevor Sie versuchen, Ihre Änderungen festzuschreiben.

Die zurückgegebenen Parameter zeigen den Namen der Tabelle an, die eine Zeile enthält, die derzeit die referenzielle Integrität verletzt. Der Name des entsprechenden Fremdschlüssel-Indexes wird ebenfalls angezeigt.

Berechtigungen

Keine

Nebenwirkungen

Keine

Siehe auch
Beispiel

Die folgende Gruppe von Befehlen kann von Interactive SQL ausgeführt werden. Zeilen werden aus der Departments-Tabelle in der Beispieldatenbank gelöscht und eine Verletzung der referenziellen Integrität tritt ein. Der Aufruf der sa_check_commit-Systemprozedur überprüft, welche Tabellen und Schlüssel auffällige Verletzungen aufweisen, und das Zurücksetzen macht die Änderung rückgängig:

SET TEMPORARY OPTION wait_for_commit='On'
go
DELETE FROM Departments
go
CREATE VARIABLE tname VARCHAR( 128 );
CREATE VARIABLE keyname VARCHAR( 128 )
go
CALL sa_check_commit( tname, keyname )
go
SELECT tname, keyname
go
ROLLBACK
go