Как получить числовой случайный uniqueid в SQL Server - PullRequest
2 голосов
/ 17 мая 2010

Я использую SQL Server 2005, скажите, пожалуйста, как я могу получить 6-значное (уникальное числовое значение, которое должно быть случайным) значение для каждой строки в таблице.

У меня есть поле в таблице, в котором нужно 6-значное числовое значение (случайное и уникальное).

Пожалуйста, помогите мне сделать это.

1 Ответ

5 голосов
/ 17 мая 2010
SELECT ABS(CHECKSUM(NEWID())) % 999999

для номера телефона:

SELECT RIGHT('000000' + CAST(ABS(CHECKSUM(NEWID())) % 999999 AS varchar(6)), 6)

NEWID примерно так же случайен, как вы можете получить в SQL Server.

Однако, если вам нужен уникальный, вы также можете начать с 000000 и перейти к 999999. Любой генератор случайных чисел столкнется с проблемой рождения .

Вы можете иметь уникальных или случайных, которые являются надежными, но не оба надежно

...