Gibt es eine Möglichkeit, SQL Server so zu konfigurieren, dass die Anzahl der Zeilen begrenzt wird, die eine Update-Anweisung ändern kann? Angenommen, ich wollte, dass das Limit 30.000 Zeilen beträgt, und jemand hat ein Update ausgelöst, das 45.000 Zeilen ändert. Er erhält einen Fehler oder eine andere vorbeugende Meldung.
sql-server
Chad Cook
quelle
quelle
Antworten:
Ein Auslöser wäre, wie ich damit umgehen würde. Dies verlangsamt alle Ihre Update-Anweisungen, da SQL jetzt eine Menge zusätzlicher Arbeit zu erledigen hat, aber Ihre Anforderungen erfüllt.
Persönlich würde ich die Idee nicht mögen, das Update mit einem kleineren Zeilensatz auszulösen, anstatt es auszulösen und erneut anzuwenden, da dies jetzt in schwierige Bereiche von halb abgeschlossenen Vorgängen gerät, die schnell sehr chaotisch werden könnten.
quelle
Sie können dies mit einem AFTER INSERT TRIGGER tun , die Anzahl der Datensätze in der eingefügten Tabelle zählen und das gewünschte Datensatzlimit auf diese Weise behandeln.
quelle
Sie können auch eine verwenden
instead of trigger
. Sie würden entweder das Update verwendenSET ROWCOUNT <a number>
(das veraltet ist) oderUPDATE TOP <a number>...
erneut anwenden (oder einfügen oder was auch immer).quelle