Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server hat meine Tabelle gelöscht, nachdem ich (fälschlicherweise) eine neue Spalte erstellt hatte. Was zum Teufel ist passiert?

Ein UPDATE -Anweisung kann keine Zeilen löschen, es sei denn, es gibt einen Auslöser, der die Löschung danach durchführt, und Sie sagen, dass die Tabelle keine Auslöser hat.

Also musste es das Szenario sein, das ich Ihnen in meinem Kommentar dargelegt habe:Die Zeilen wurden nicht richtig in die neue Tabelle geladen, und die alte Tabelle wurde gelöscht.

Beachten Sie, dass es sogar möglich ist, nachgesehen zu haben richtig für Sie, wo die Zeilen zu einem bestimmten Zeitpunkt geladen wurden - wenn die Transaktion nicht festgeschrieben wurde und dann (zum Beispiel) später, als Ihre Sitzung beendet wurde, die Transaktion automatisch zurückgesetzt wurde. Die Transaktion hätte auch aus anderen Gründen rückgängig gemacht werden können.

Außerdem habe ich möglicherweise die Reihenfolge falsch verstanden:Es kann die neue Tabelle unter einem neuen Namen erstellen, die Zeilen laden, die alte Tabelle löschen und die neue umbenennen. In diesem Fall haben Sie möglicherweise die falsche Tabelle abgefragt, um herauszufinden, ob die Daten geladen wurden. Mir fällt gerade nicht ein, wie der Tabellen-Designer seine Skripte strukturiert -- es gibt mehr als einen Weg, dieser Katze das Fell abzuziehen.