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

SQL Identity dengan nol empuk di depan

Seperti yang telah ditunjukkan dengan tepat oleh orang lain - sebuah INT tidak pernah memiliki nol di depan - itu hanya memegang nilai, itu saja (dan itu bagus).

Jika Anda memerlukan beberapa pemformatan tambahan, Anda selalu dapat menambahkan kolom yang dihitung ke tabel Anda, seperti:

ALTER TABLE dbo.Identitytest
  ADD DisplayNumber AS  RIGHT('000' + CAST(number AS VARCHAR(3)) , 3) PERSISTED

Dengan cara ini, IDENTITAS INT Anda akan digunakan sebagai INT dan selalu berisi nilai numerik, sementara DisplayNumber berisi 001, 002, ... 014, 015, ..... dan seterusnya - secara otomatis, selalu up to date.

Karena ini adalah bidang yang bertahan, sekarang menjadi bagian dari tabel Anda, dan Anda dapat membuat kueri di atasnya, dan bahkan meletakkan indeks di atasnya untuk membuat kueri lebih cepat:

SELECT value FROM dbo.IdentityTest WHERE DisplayNumber = '024'

Dan tentu saja, Anda dapat menggunakan hampir semua format dalam definisi kolom yang dihitung, sehingga Anda juga dapat menambahkan awalan atau semacamnya:

ALTER TABLE dbo.Identitytest
  ADD DisplayNumber 
      AS  'ABC-' + RIGHT('000' + CAST(number AS VARCHAR(3)) , 3) PERSISTED

Jadi dalam hal ini, DisplayNumber Anda akan menjadi ABC-001, ABC-002, ... dan seterusnya.

Anda mendapatkan yang terbaik dari kedua dunia - Anda menyimpan IDENTITAS INT Anda yang numerik dan secara otomatis ditingkatkan oleh SQL Server, dan Anda dapat menentukan format tampilan dengan cara apa pun yang Anda suka dan tersedia kapan saja.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pilih TANGGAL menit dengan query SQL Server 2008

  2. Apa cara terbaik untuk menguji koneksi SQL Server secara terprogram?

  3. SQL Server:konversi ((int)tahun,(int)bulan,(int)hari) ke Datetime

  4. Mengapa cast/convert dari int mengembalikan tanda bintang

  5. Apa arti dari awalan N dalam pernyataan T-SQL dan kapan saya harus menggunakannya?