如何在SQL2008中用随机的唯一数字填充字段

本文关键字:唯一 数字 填充 字段 随机 SQL2008 | 更新日期: 2023-09-27 18:35:28

我有一个表格,其中有一个 int 字段。此字段应用随机数填充,并且应该是唯一的。最好的解决方案是什么?我应该生成一个随机数并检查它是否存在于表中吗?顺便说一下,我正在使用 ASP.NET 和C#开发Web应用程序。

如何在SQL2008中用随机的唯一数字填充字段

你真的需要它是随机的吗?如果只需要唯一的整数值,请使用标识。检查此链接

编辑:对于随机数(BigInt),您可以尝试以下操作:

SELECT ABS(CAST(CAST(NEWID() AS VARBINARY(5)) AS Bigint)) as UniqueNo

在这里找到它

使用 GUID:

public string GetRandomGUID(int length)
{
  // Get the GUID
  string guidResult = System.Guid.NewGuid().ToString();
  // Remove the hyphens
  guidResult = guidResult.Replace("-", string.Empty);
  // Make sure length is valid
  if (length <= 0 || length > guidResult.Length)
    throw new ArgumentException("Length must be between 1 and " + guidResult.Length);
  // Return the first length bytes
  return guidResult.Substring(0, length);
}

尝试 http://msdn.microsoft.com/en-us/library/system.random.aspx 生成随机数,然后查询数据库以检查该值是否存在。您应该能够通过选择"int field"="随机数"的行并检查@@rowcount是否= 0来确定它。

Front End使用 C#

Guid.NewGuid().ToString("N") //Replaces all - will Empty values. 
                               Final value will be numeric

从数据库

newid()

这两种技术都会给你独特的结果。