Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 数据库表中唯一的数字字段,但不是主键_Sql Server_Database_Entity Framework - Fatal编程技术网

Sql server 数据库表中唯一的数字字段,但不是主键

Sql server 数据库表中唯一的数字字段,但不是主键,sql-server,database,entity-framework,Sql Server,Database,Entity Framework,我有一个测试系统。它生成带有数字的空白。数字必须是唯一的。空白数据存储在MSSQL表中。这就是为什么我决定将空格数作为主键。 例如 我桌上有空的 Id User ----------- 1 Alpha 2 Bravo 3 Charlie 我为3个用户打印了3张空白:Aplpha 1号空白,Bravo 2号空白 但有一条商业规则。空白数字可以更改。我决定对表做如下更改:我添加了具有唯一索引的列BlankNumber Id User BlankNumber ----------- 1

我有一个测试系统。它生成带有数字的空白。数字必须是唯一的。空白数据存储在MSSQL表中。这就是为什么我决定将空格数作为主键。 例如

我桌上有空的

Id User
-----------
1  Alpha
2  Bravo
3  Charlie
我为3个用户打印了3张空白:Aplpha 1号空白,Bravo 2号空白

但有一条商业规则。空白数字可以更改。我决定对表做如下更改:我添加了具有唯一索引的列BlankNumber

Id User     BlankNumber
-----------
1  Alpha    1
2  Bravo    2
3  Charlie  3
现在我可以通过改变BlankNumber列的值来轻松地更改这个数字

我的问题是如何快速生成列BlankNumber的值? 如果我不使用事务,将会发生冲突。但我不想要事务,因为它会减慢插入数据的速度

1) 是否有自定义列值生成器不是主键?它们是否得到ORM(EF)的支持


2) 如果我决定使用事务,我应该选择哪个隔离级别

空数字的值是否重要,或者是否以任何方式与数据相关?您不能使用guid(全局唯一标识符)吗@AlexanderDerck编号。它必须是唯一的编号,而不是guid。@Zabari如果空白编号是连续编号,这会很方便,但我必须可以轻松更改这些编号。以什么方式更改它们?