Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Hasilkan daftar nomor acak unik baru di T-SQL

Anda dapat menggunakan cte dengan kode yang dihitung, distinct dan periksa apakah Kode sudah ada di tabel Anda:

;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)

Jadi distinct membantu Anda menghindari tabrakan antara kode baru dan exists membantu Anda menghindari tabrakan dengan kode yang sudah ada di [Codes] tabel, dan order by newid() membantu Anda mendapatkan nilai acak dari kode baru



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa mengonversi kutu ke format tanggal?

  2. Pertumbuhan Ukuran Database SQL Server menggunakan riwayat Cadangan

  3. Daftar Cadangan Rencana Pemeliharaan SQL Server 2008

  4. Keuntungan SQL Server 2008 dibandingkan SQL Server 2005?

  5. Salin tabel dari satu database ke database lain di SQL Server