1

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

现在对于单用户,我阅读了最后一个序列号并显示它的文本框。它正在工作。如果 2 个用户同时插入一条记录,则会出现序列号重复错误。有什么解决办法?

4

1 回答 1

0

您可以使用身份列。或者,如果您需要在写入数据库之前显示或使用 id,另一种技术是使用我所见过的称为“源表”的方法(尽管谷歌搜索该术语并没有找到任何结果)。本质上,您创建了一个存储过程,该过程访问一个包含当前 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
于 2013-09-14T00:38:12.363 回答