0

我想使用 asp.net 网络表单将一些数据输入到表格中。我没有让用户 UI 输入数据进入的表中所需的主键列的值。该表具有不会自动生成值的主键列 (char)。

每次用户填写表格时,我如何才能生成唯一值?

第二次输入数据时,如何检查它确实是唯一的?

谢谢

4

3 回答 3

0

如果您不想使用 DateTime,一个简单的方法是使用 Java 的 Random 函数生成随机数并将其存储为主键。要检查随机数是否没有重复,将该数字与已存储的所有随机数进行比较在您的表中作为主键。

于 2012-12-10T11:18:30.897 回答
0

在你的 SQL 中创建一个函数来完成这个任务。正如评论所说,这不是应该做的,而是尝试使用 sql 中的 GUID() 函数生成唯一键,然后从中取出 20 个字符......

未经测试,它将如下所示:

CREATE FUNCTION fn_GenerateKey
()
RETURNS CHAR(20)
AS
BEGIN

DECLARE @test CHAR (36) 

-- NEWID() will generate a 36 character unique key.
SET @test = NEWID()

-- take the 20 first
SET @test = SUBSTRING(NEWID(),1,20)

--compare @test to the keys already existings to check if you can use it

--Then return @test as the new Key

END
GO
于 2012-12-10T10:59:43.457 回答
0

您可以使用不同的日期时间格式来创建唯一键。日期时间将永远不会重复。

于 2012-12-10T11:10:39.393 回答