2016-07-29 2 views
0

Ich benutze SQL Server 2014 Management Studio. Ich arbeite an einer Windows-Formularanwendung (vb.net).SQL-Server, während die Transaktion geöffnet ist

Ich stehe vor einem Problem. (Ich bin mir nicht sicher, ob es auf diese Weise funktioniert)

Ich schrieb einige Insert-Abfragen für die Datenbankeinfügung. Während ich meinen Code debuggen, SQL-Transaktion ist offen und Einfügen der Daten,

Meine Frage hier ist, dass, wenn eine Transaktion vom Back-End geöffnet ist, warum kann ich keine Abfrage von Management Studio ausführen?

Sobald die Transaktion festgeschrieben oder rückgängig gemacht wird, funktioniert Management Studio auch mit großen Abfragen.

Vielen Dank im Voraus.

+0

gibt es hier eine gute Erklärung: https://www.brentozar.com/archive/2013/01/implementing-snapshot-or-recommitted-snapshot-isolation-in-sql-server-a- Anleitung/# Kommentar-2220427 – GuidoG

Antwort

1

Wenn Sie eine Transaktion ausführen, sind die in der Transaktion verwendeten Objekte gesperrt, und keine andere Verbindung kann auf das Objekt zugreifen. In Ihrem Fall, wenn Sie die Transaktion innerhalb der Anwendung ausführen, sperrt die Transaktion die Objekte, die verwendet werden (wie Tabelle), und gleichzeitig, wenn Sie eine Anfrage von Management Studio absetzen, wartet sie auf die Freigabe der Sperre. Sobald die Transaktion in der Anwendung abgeschlossen ist, wird die Sperre aufgehoben und die Abfrage im Management Studio ausgeführt.

0

Versuchen Sie with nolock in Ihrer Abfrage zu verwenden. Sie können damit auf die Daten des in der Transaktion enthaltenen Objekts zugreifen.

0

Auch wenn Sie andere IDEs verwenden, ist die von Ihnen verwendete Sql-Serverinstanz die gleiche. Sie greifen auf dieselbe Datenbank zu, unabhängig davon, auf welche IDE Sie zugreifen.