通常的做法是IDENTITY
使用.@@IDENTITY
INSERT
使用值以类似方式检索最后一个rowversion
值是否只是相等正确?UPDATE
@@DBTS
例如:
IF(OBJECT_ID('XXX') IS NOT NULL)
DROP TABLE XXX
GO
CREATE TABLE XXX
(
ID int IDENTITY(1,1) PRIMARY KEY,
Name varchar(64) NOT NULL,
RV rowversion
)
GO
INSERT INTO XXX(Name) VALUES
('Apples'),('Bananas'),('Cranberries'),('Dragon Fruit'),('Eggplant'),('Fig'),('Grape')
GO
SELECT * FROM XXX
GO
UPDATE XXX
SET Name = 'Chocolate' WHERE ID = 3
PRINT @@DBTS
GO
现在可以@@DBTS
安全地进行并发更新了吗?
如果另一个连接在 和 之间执行插入和更新UPDATE
,PRINT
我们最终会rowversion
得到“其他”连接而不是我们自己更新的连接吗?