для генерации тестовых данных, вам может быть полезно иметь детерминированные данные.Другими словами, каждый раз, когда вы генерируете данные, это одно и то же.Таким образом, проще воспроизводить ошибки.
Для этого вы можете использовать hashbytes()
над детерминированным начальным числом.Другими словами:
create function dbo.fn_RandishInt(@seed nvarchar(max), @min int, @max int)
returns int
as
begin
declare @crc bigint
declare @p float
set @crc = cast(cast(hashbytes('md5', @seed) as int) as bigint) & 0xffffffff
set @p = cast(@crc as float) / 4294967296
return round(((@max - @min) * @p) + @min, 0)
end
go
SELECT
ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS s,
char(dbo.fn_RandishInt(ROW_NUMBER() OVER (ORDER BY (SELECT 0)), 65, 66)) AS t
FROM
sys.objects
это всегда даст одинаковые, случайные результаты.