Um editor útil adicionou o 'Select' antes de cada instrução, mas o ponto deste item é que ele pode gerar chaves exclusivas para cada linha em um retorno, não apenas um item (para isso eu usaria a função Rand()). Por exemplo :Selecione os 100 principais Rand(),* de tblExample
Retornaria o mesmo valor aleatório para todas as 100 linhas.
Enquanto:Selecione os 100 melhores ABS(CHECKSUM(NEWID()) % 10),* de tblexample
Retornaria um valor aleatório diferente entre 0 e 9 em cada linha no retorno. Assim, embora o select facilite copiar e colar, você pode copiar a lógica em uma instrução select se for necessário.
Isso gera um número aleatório entre 0-9
SELECT ABS(CHECKSUM(NEWID()) % 10)
1 a 6
SELECT ABS(CHECKSUM(NEWID()) % 6) + 1
3 a 6
SELECT ABS(CHECKSUM(NEWID()) % 4) + 3
Dinâmico (com base no comentário de Eilert Hjelmeseths, atualizado para corrigir bug (+ para -))
SELECT ABS(CHECKSUM(NEWID()) % (@max - @min - 1)) + @min
Atualizado com base nos comentários:
NEWID
gera string aleatória (para cada linha em retorno)CHECKSUM
pega o valor da string e cria o número- módulo (
%
) divide por esse número e retorna o restante (significando que o valor máximo é um a menos que o número que você usa) ABS
altera resultados negativos para positivos- adicione um ao resultado para eliminar 0 resultados (para simular um lançamento de dados)