sql >> Database >  >> RDS >> Sqlserver

SQL Server heeft mijn tabel gewist nadat ik (onjuist) een nieuwe kolom had gemaakt. Wat is er in vredesnaam gebeurd?

Een UPDATE instructie kan geen rijen verwijderen tenzij er een trigger is die de verwijdering daarna uitvoert, en u zegt dat de tabel geen triggers heeft.

Het moest dus het scenario zijn dat ik voor je heb uitgestippeld in mijn opmerking:de rijen zijn niet correct in de nieuwe tabel geladen en de oude tabel is verwijderd.

Merk op dat het zelfs mogelijk is dat het keek goed voor u, waar de rijen op een gegeven moment werden geladen - als de transactie niet was vastgelegd en (bijvoorbeeld) later, toen uw sessie werd beëindigd, werd de transactie automatisch teruggedraaid. De transactie had ook om andere redenen kunnen worden teruggedraaid.

Ook kan het zijn dat ik de volgorde onjuist heb gekregen:het kan de nieuwe tabel onder een nieuwe naam maken, de rijen laden, de oude tabel laten vallen en de nieuwe naam wijzigen. In dit geval heeft u mogelijk de verkeerde tabel doorzocht om erachter te komen of de gegevens waren geladen. Ik kan me op dit moment niet uit mijn hoofd herinneren op welke manier de tafelontwerper zijn scripts structureert - er is meer dan één manier om deze kat te villen.




  1. Oracle DB - Invoernummer instellen op exacte lengte

  2. DML-statements testen voor In-Memory OLTP

  3. LOB RETENTIE

  4. Synchrone mysql in Node.js