我创建了一个适用于网络的C#应用程序。我将SQL Server 2008 Express用于我的应用程序。
我的问题是:
当2台计算机上的2个人同时点击Insert
按钮时,会在数据库中添加2行,但编号相同(即错误)。
如果时间不一样,我的应用程序会检查一些条件,这个问题不会发生。
我的问题是:
现在我需要在插入1个人之前锁定表并在插入后解锁表。
怎么做?
答案 0 :(得分:0)
您必须使用IDENTITY列。
如果你想在sql server中锁定表,你可以这样做
INSERT INTO Table1 WITH (TABLOCK)
SELECT @Col1, @Col2, @Col3, @Col4 OPTION (FAST 1)
UPDATE Table1 WITH (TABLOCK)
SET Col5 = @Col5
WHERE @Col1 = @Var
UPDATE Table2 WITH (TABLOCK)
SET Col = @ColVal