多用户记录更新使用SQL Server和Windows的Windows应用程序C#

时间:2014-08-04 09:55:44

标签: c# sql sql-server multi-user

我正在开发一个Windows应用程序,其中多个用户可以使用相同的数据库。

我的问题是在向数据库表插入新记录时,我需要在客户注册表单中显示新的customerID。为此,我得到最后一个客户ID并递增1并显示新客户的客户ID。在多用户环境中,如果两个人同时尝试添加新客户,则显示新客户ID时会出现问题。当两个用户同时访问和更新同一条记录时。

怎么办?

2 个答案:

答案 0 :(得分:2)

您可以将插入的值输出到表变量中,然后返回该值

e.g。

DECLARE @output TABLE
(Col1           VARCHAR(10));

INSERT targetTable
(Col1)
    OUTPUT inserted.Col1
    INTO @output
VALUES ('ACC1001')

SELECT Col1 FROM @output;

答案 1 :(得分:0)

不要获取最后一个客户ID并自动将其增加一个,因为您提到的原因并不安全。

在新记录的插入语句之后,只需选择插入的ID,并使用以下代码行将其显示在客户注册表单中:

SELECT SCOPE_IDENTITY()

或者检查这个等效语句的选择语句:

SELECT @RecordId= MAX([RecordId])
  FROM [dbo].[CustomerTbl]