Хорошо, поэтому я не уверен, правильно ли я поступлю. Но мой сценарий - у меня есть хранимая процедура, которую я хотел бы протестировать, используя все возможные комбинации входных данных, которые она принимает.
Допустим, у меня есть хранимая процедура, которая принимает два параметра, например:
set UsefulValue = exec spMyStoredProc @ProfileID, @RoleID
Теперь в моем случае ProfileID означает что-то вроде people , а RoleID означает что-то вроде system ролей. Я намерен быть немного генералом. Дело в том, что у меня около 60 000 определенных людей и около 600 определенных ролей.
К сожалению, система, которую я тестирую, является СЛОЖНОЙ, как сложный день, и мне действительно нужно пройти эту процедуру в полном темпе.
Хорошо, пока со мной? Надеюсь, вы; проверьте этот sql для генерации данных, которые я в конечном итоге передам хранимой процедуре:
select profiles.ProfileID, roles.RoleID from Profile profiles
cross join dbo.DefinedRoles roles
Это на самом деле довольно хорошо, но проблема в том, что он работает вечно, и, честно говоря, мне не нужно каждую перестановку этих двух значений.
Поэтому я попытался ограничить результирующий набор следующим образом:
select top 300000 profiles.ProfileObjID, roles.RoleName from dbo.Profile profiles
cross join dbo.rj_v_DefinedRoles roles
Но упс! Это ограничивает конечный результат, поэтому я в итоге получаю только результат с 2-3 ролями (в зависимости от того, что я передаю верхнему глаголу) и ProfileID для каждого человека.
Что бы я хотел иметь, моя цель - получить результаты по всем моим ролям (около 600) и по каждой из них, возможно, использовать только половину ProfileID вместо целых притон.
Так имеет ли смысл то, что я спрашиваю?