У меня есть SP, который возвращает счетчик, мне нужно использовать этот счетчик и обновлять случайные строки (количество строк) в некоторой другой таблице, рассчитывать возвращается всегда будет меньше или равно, чем число строк, доступных, так что случайные строки всегда должны быть доступныНеверное количество строк, обновленных при использовании Rand (Checksum (Newid()))
ниже метод я использую
я в настоящее время есть 7 строки для пункта, где и подсчета возвращается также 7, но при разных попытках ниже логические метки 1 для 5 или 6 строк и никогда не 7, является ли это некоторым недостатком с использованием функции rand?
Есть ли альтернатива этому?
EXEC @Randcount=dbo.[Usp_getcount]
UPDATE [mytable]
SET [output] = 1
WHERE [id] IN
(SELECT TOP (@Randcount)
[id] FROM [dbo].[mytable]
WHERE
[empid] = @empid AND [setId] = @setID
ORDER BY Rand(Checksum(Newid())))
любая помощь будет принята с благодарностью.
Просьба предоставить полный работоспособный пример, иллюстрирующий проблему. –