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

Umschließt SQL Server Select...Insert-Abfragen in eine implizite Transaktion?

Sie verwechseln zwischen Transaktion und Sperrung. Bei Fehlern setzt Transaction Ihre Daten wieder in den ursprünglichen Zustand zurück. Wenn nicht, werden die Daten in den neuen Zustand verschoben. Sie werden Ihre Daten niemals in einem intermittierenden Zustand haben, wenn die Operationen abgewickelt werden. Auf der anderen Seite ist das Sperren dasjenige, das mehreren Benutzern den gleichzeitigen Zugriff auf die Daten ermöglicht oder verhindert. Um Ihre Frage zu beantworten:select...insert ist atomar und solange keine granularen Sperren explizit angefordert werden, kann kein anderer Benutzer einfügen, während select..insert ausgeführt wird.