想生成自定义的唯一密钥并同时处理多个请求

时间:2018-07-31 12:50:52

标签: sql entity-framework linq-to-entities

我在sql数据库服务器中有一个下表,其中包含一个varchar列,并使用linq to实体以编程方式将其维护为自定义唯一键。我正在从数据库中提取数据并进行拆分,增加和保存,但是我想知道当多个请求同时出现时会发生什么情况,这可能会使我的逻辑失败或由sql server处理。

-----------------
Id      |  Code
-----------------
1       | BA0001
2       | BA0002
3       | BA0003

1 个答案:

答案 0 :(得分:1)

  

同时出现多个请求时会发生什么

您将违反PK。

在SQL Server中,您可以使用Sequence对象生成密钥,如下所示:

create sequence seq_t
start with 1
increment by 1

create table t
(
  id varchar(20) default concat('BA',format((next value for seq_t),'0000')) primary key, 
  a int
)