我们如何处理SQL Server表中多个用户的序列号

时间:2013-09-14 00:14:20

标签: sql-server vb.net

如何在SQL Server的一个表中管理多个用户同时输入records.net的序列号?

现在对于单个用户,我读取最后一个序列号并显示它的文本框。它正在发挥作用。如果2个用户同时插入记录 - 则会发生序列号重复错误。什么是解决方案?

1 个答案:

答案 0 :(得分:0)

您可以使用标识列。 或者,如果您需要在写入数据库之前显示或使用该ID,另一种技术是使用我所看到的称为“Fount表”(尽管谷歌搜索这个术语没有提出任何命中)。基本上,您创建一个存储过程来访问一个表中的一行,该表保存当前的id; SP检索并递增事务中的id。这样每个id都是唯一的。在下面的示例SQL中,@ whichid用于定义我们要求新ID的表; @n是新的id。

create PROCEDURE [dbo].[spGetUniqueID] 
@n int OUTPUT,@whichid int

AS

BEGIN TRAN
SELECT @n = val  FROM fount WHERE fountkey = @whichid
UPDATE fount SET val = @n + 1 WHERE fountkey = @whichid
COMMIT TRAN

RETURN
相关问题