Ich habe eine Anzahl von Datensätzen in einer Tabelle mit einer Statusspalte und möchte einen einzelnen Datensatz auswählen, bei dem Status = Ausstehend und in derselben atomaren Abfrage als Status = InProcess markiert ist. Was ist der beste Weg, das zu tun?
Dies ist erforderlich, weil mehrere Abfragen gleichzeitig ausgeführt werden können, um diese Datensätze zu verarbeiten, und ich möchte nicht, dass zwei Threads denselben Datensatz zur Verarbeitung abrufen.
Hier ist ein Artikel über Verwenden von Tabellen als Warteschlangen .
Mit dieser Tabelle create table T (ID int identity, Status varchar(15))
So etwas sollte dich vor Deadlocks schützen.
Das folgende ist eine Art Hack, aber es funktionierte für atomare Lese / Updates:
%Vor%Tags und Links sql sql-server-2008 select tsql atomic