SQL-Trigger Resultset Fehler

October 11

Trigger sind SQL-Prozesse, die "ausgelöst" werden, wenn eine bestimmte Bedingung für eine Tabelle enthält. Die Datenbank Anwendung Programmierer-Teams mit dem Datenbankadministrator, Trigger für Tabellen zu schreiben. Ein Trigger kann oder möglicherweise kein Resultset zurück.

Was geben Trigger zurück?

Der Hauptzweck eines Triggers ist eine Datenüberprüfung. Es gibt Insert-Trigger, die ausgeführt werden, wenn eine Zeile in die Tabelle eingefügt wird. Löschen und aktualisieren Trigger führen auf Zeile löschen und Aktuelles Feld. Normalerweise würde ein Datenbank-Designer einen Trigger schreiben, der einen booleschen Erfolg/Misserfolg Status zurückgibt. Der Trigger unterhält die Integrität der Daten, indem Sie sicherstellen, dass keine ungültigen Werte sind in der Tabelle und keine ungültigen Operationen werden durchgeführt. Trigger können jedoch eine Ergebnismenge, die genau wie jede gespeicherte SQL-Prozedur zurückgeben.

Unerwartetes Verhalten

Trigger, die ein Resultset unvorhersehbares Verhalten in Anwendungen verursachen kann zurückgeben sollen keine Daten zurück zu erwarten. Der Autor des Triggers in der Regel der Datenbankadministrator kann manchmal nicht mit der Anwendungsprogrammierer kommunizieren.

Lösung für Trigger Resultset Störungen

Schalten Sie die SQL Server-Option "disallow Results from Triggers" auf ON wie folgt:

Sp_configure 'Show advanced Options', 1neu konfigurierenSp_configure 'disallow Results from Triggers", 1neu konfigurieren

Dies fängt jede unbekannte Auslöser ein Resultsets zurückgeben und eine entsprechende Fehlermeldung angezeigt.

Wichtiges Release Note

Die Option "disallow Results from Triggers" ist in Microsoft SQL Server 2008 R2 verfügbar. Allerdings ist es in den späteren Versionen von SQL Server entfernt.