S_SAYI_ÜRET'i kullanma

S_SAYI_ÜRET işlev 0 ile 1 arasında rastgele bir kayan noktalı sayı hesaplar ve isteğe bağlı olarak izleyebileceğiniz bir tinyint, int, veya smallint için başlangıç noktasını hesaplamak için rasgele bir sayı değeri.

Aşağıdaki örnek, iki rasgele sayılar hesaplar.İlk RAND() işlev sağlar SQL Server çekme tohum değeri ve ikinci RAND() işlevini kullanan değerini 3 için başlangıç konumu.

SELECT RAND(), RAND(3);

S_SAYI_ÜRET işlev c run - için benzer bir şekilde işleyen bir pseudorandom sayı oluşturucu olansaat kitaplığı rand işlev.Hiçbir tohum sağlanıyorsa, sistem kendi değişken tohum numaralarını oluşturur.S_SAYI_ÜRET tohum değeri ile çağırırsanız, rasgele bir sayı üretmek için değişken tohum değerleri kullanmanız gerekir.S_SAYI_ÜRET birden çok kez aynı tohum değerle çağırmalı, üretilen aynı değeri döndürür.Tüm aynı tohum değerini kullandıkları için aşağıdaki komut dosyası S_SAYI_ÜRET işlevine çağrıları için aynı değeri döndürür:

SELECT RAND(159784);
SELECT RAND(159784);
SELECT RAND(159784);

rand rastgele sayı üretmek için ortak bir yol oldukça değişken bir getdate çeşitli bölümlerini ekleme gibi tohum değeri olarak bir şey eklemektir:

SELECT RAND( (DATEPART(mm, GETDATE()) * 100000 )
           + (DATEPART(ss, GETDATE()) * 1000 )
           + DATEPART(ms, GETDATE()) );

getdate alan bir algoritma Çekirdek değerler oluşturmak için kullandığınızda, S_SAYI_ÜRET işlevine çağrıları algoritması kullanılan en küçük datepart aralığı içinde yapılırsa, rand hala yinelenen değerleri oluşturabilir.Bu, özellikle de S_SAYI_ÜRET işlevine çağrıları tek bir toplu iş iş işlemde eklenince olasıdır.Birden fazla rand çağrıları tek toplu iş iş aynı milisaniyelik içinde çalıştırılabilir.Bu datepart, en küçük değerdir.Bu durum, başka bir şey saat Çekirdek değerler üretmek için temel bir değer ekleyebilirsiniz.