Überprüft vor dem Festschreiben, ob Verletzungen der referenziellen Integrität vorhanden sind
sa_check_commit( Tabellenname, Schlüsselname )
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
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.
Keine
Keine
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 |
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 |