我想執行更新,然後選擇結果。我不希望任何東西能夠更新我要更新的行,直到選擇發生之後。我將如何做到這一點?SQL Server 2005和SELECT和UPDATE鎖定
我的目標是增加一行的值並返回增加的值。到目前爲止,我發現我最終遇到了一個問題,即更新(增加),然後在選擇似乎返回相同數字的同一時間發生兩個查詢的情況下進行選擇。所以我猜測,更新>更新>選擇>選擇正在發生。
我錯過了將其標記爲SQL Server 2005.我實際上使用Server 2000.所以輸出子句不起作用(不在該版本中)。
BEGIN TRANSACTION
UPDATE Table SET Last=(Last+1) WHERE ID=someid;
SELECT * FROM Table WHERE ID=someid;
COMMIT TRANSACTION
你絕對沒有在選擇獲取更新中使用的值的select [select> update> select'? – 2010-06-08 17:39:37
我正在添加調試以查找確切值,我知道它們是相同的。 – aepheus 2010-06-08 17:42:53
你能發佈代碼嗎? – 2010-06-08 17:43:46