我想执行更新,然后选择结果。我不希望任何东西能够更新我要更新的行,直到选择发生之后。我将如何做到这一点?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