SQL server-Befehlszeile: Abort statt GO

Ich bin in SQL server Befehlszeile Dienstprogramm (sqlcmd.exe) und ich tippe:

1> UPDATE usercache SET TargetUri = NULL WHERE name='Alexander'; 2> GO (5 rows affected) 

Aber bedenkt den Fall, wo ich die WHERE statement vergessen habe:

 1> UPDATE usercache SET TargetUri = NULL; 2> 

Wie würde ich jetzt die Ausführung abbrechen? Ab jetzt bin ich mit Strg + C und dann wieder mit dem server verbinden, aber gibt es eine SQL-statement, die mir helfen könnte?

Solutions Collecting From Web of "SQL server-Befehlszeile: Abort statt GO"

Gibt es eine SQL-statement, die mir helfen könnte?

Nein, gibt es nicht. Aber es gibt einen SQLCMD-Befehl, der: RESET , in der gleichen Weise, dass Sie in der Regel GO , um alle statementen zu senden.

Siehe hier :

RESET Löscht den statementscache.

Und:

GO [count] GO signalisiert sowohl das Ende eines Batches als auch die Ausführung von zwischengespeicherten Transact-SQL-statementen.

Sie werden auch nach dem Ausgeben von RESET , dass die Zeilennummer auf 1> .

Meine Empfehlung wäre, BEGIN TRAN mit "riskanten" Abfragen zu verwenden, wie folgt:

 BEGIN TRAN UPDATE usercache SET TargetUri = NULL; 

Nachdem Sie sicher sind, dass dies tatsächlich die Abfrage ist, die Sie auf Ihrem server ausführen möchten, geben Sie einen COMMIT Befehl aus, um Änderungen an der DB zu speichern.

 BEGIN TRAN UPDATE usercache SET TargetUri = NULL; COMMIT 

Wenn du die von dieser Abfrage vorgenommenen Änderungen rückgängig machen möchtest, musst du nur einen ROLLBACK Befehl anstelle von COMMIT ausgeben und du bist sicher zurück, wo du angefangen hast.

 BEGIN TRAN UPDATE usercache SET TargetUri = NULL; ROLLBACK