![]() |
1
3
如果必须是varchar,可以将uniqueidentifier强制转换为varchar。 要获取随机唯一标识符,请执行以下操作 NewId() 以下是你如何铸造的:
编辑根据您对@brannon的评论: 你是说你的记录永远不会超过99k条?如果是这样,只需将您的pk设置为标识列,在其中输入1000,并在业务逻辑中注意“0”左填充。 |
![]() |
2
1
这个问题给了我同样的感觉,当用户不告诉我他们想做什么,或者为什么,他们只想告诉我怎么做。 “Random”和“Unique”是相互冲突的要求,除非您创建一个序列列表,然后从中随机选择,删除所选的值。 但这是为了解决什么问题呢? |
![]() |
3
1
对于您的编辑/更新,听起来您需要的是一个自动增量和一些填充。 下面是一种使用假表的方法,然后添加一个标识列(假设您没有标识列),该列从1000开始,然后使用计算列为您提供一些填充,使所有内容都按您的要求工作。
|
![]() |
4
1
我认为迈克尔的自动增量回答应该很好——你的客户会得到“01000”,然后是“01001”,然后是“01002”,等等。 如果您希望或必须使其更加随机,在这种情况下,我建议您创建一个包含所有可能值的表,从“01000”到“99999”。插入新客户时,使用一种技术(例如随机化)从该表中选择一个现有行(仍然可用的客户ID池),然后使用它,并将其从表中删除。 随着时间的推移,任何其他事情都会变得非常糟糕。假设您已经用完了90%或95%的可用客户ID,尝试随机地查找剩下的少数可能性中的一个,可能会导致几乎无穷无尽的重试“这是采取的吗?是->尝试下一个”。 马克 |
![]() |
5
1
随机字符串数据需要是某种格式吗?如果不是,为什么不使用唯一标识符?
或使用
编辑: 我同意@rm,在数据库中使用一个数值,并在代码中处理到字符串(带填充等)的转换。 |
![]() |
6
0
试试这个:
它返回一个最长为毫秒的日期和时间,在大多数情况下wich就足够了。 你…吗 真的? 需要唯一的值? |
![]() |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
![]() |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
![]() |
SoT · SQL Server中求和函数的工作方式 2 年前 |
![]() |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
![]() |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
![]() |
snowflakes74 · 在Dapper中异步查询多个结果 3 年前 |