添加新序列号作为标识符

时间:2012-01-23 12:31:10

标签: sql-server-2008 tsql

有一个包含varchar标识符的表。 还有几个SP通过获得最大值并递增1来生成此数字。

如何锁定表格,以便我可以保留ID,例如50条新纪录, 同时没有任何用户没有在我获得的“范围”中插入记录。

有可能是这样的吗?

2 个答案:

答案 0 :(得分:2)

这是一个难以解决的难题,这就是为什么每个RDBMS实现都有内置的自动递增标识符数据类型。

使用AN IDENTITY字段

这确实是唯一有效的解决方案。如果您的事务处理率很高,那么代码中会有大量的锁定和阻塞,以执行引擎为您自动处理的内容。

如果您需要字母数字字段,则没有理由不能拥有标识字段和varchar并将其用作双键。

答案 1 :(得分:0)

在事务中插入插入。

示例:

BEGIN TRANSACTION MyIdentifierRange
     EXEC usp_createNewIdentifier 
COMMIT TRANSACTION MyIdentifierRange