आप परिकलित कोड के साथ सीटीई का उपयोग कर सकते हैं, distinct
और जांचें कि क्या कोड आपकी तालिका में पहले से मौजूद है:
;with cte_stream as (
select
floor(cast(crypt_gen_random(4) as bigint) / 4294967296 * ((@max - @min) + 1)) + @min as Code
from sys.all_objects as s1
cross join sys.all_objects as s2;
)
insert into [Codes]
select distinct top (@n) s.Code
from cte_stream as s
where not exists (select * from [Codes] as c where c.Code = s.Code)
तो distinct
नए कोड के बीच टकराव से बचने में आपकी मदद करता है और exists
[Codes]
. में पहले से मौजूद कोड के साथ टकराव से बचने में आपकी मदद करता है तालिका, और order by newid()
आपको नए कोड से यादृच्छिक मान प्राप्त करने में मदद करता है