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

Bagaimana cara menghasilkan id unik secara otomatis dalam SQL seperti UID12345678?

Satu-satunya solusi yang layak menurut saya adalah menggunakan

  • sebuah ID INT IDENTITY(1,1) kolom agar SQL Server menangani kenaikan otomatis nilai numerik Anda
  • a dihitung, bertahan kolom untuk mengonversi nilai numerik itu ke nilai yang Anda butuhkan

Jadi coba ini:

CREATE TABLE dbo.tblUsers
  (ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
   UserID AS 'UID' + RIGHT('00000000' + CAST(ID AS VARCHAR(8)), 8) PERSISTED,
   .... your other columns here....
  )

Sekarang, setiap kali Anda memasukkan baris ke tblUsers tanpa menentukan nilai untuk ID atau UserID :

INSERT INTO dbo.tblUsersCol1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)

maka SQL Server akan secara otomatis dan aman tambah ID nilai, dan UserID akan berisi nilai seperti UID00000001 , UID00000002 ,...... dan seterusnya - secara otomatis, aman, andal, tidak ada duplikat.

Pembaruan: kolom UserID dihitung - tapi tetap Tentu saja memiliki tipe data , seperti yang ditunjukkan oleh Object Explorer:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mendapatkan nilai Maks dan Min dari Tabel dengan menggunakan Fungsi Agregat - Tutorial SQL Server / TSQL Bagian 129

  2. Pulihkan Basis Data Dari Mode Darurat di SQL Server

  3. FILE_ID() vs FILE_IDEX() di SQL Server:Apa Bedanya?

  4. pesan oleh newid() - bagaimana cara kerjanya?

  5. Bagaimana cara menemukan direktori data untuk contoh SQL Server?