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

Di SQL Server, bagaimana cara menghasilkan ID kunci utama peningkatan otomatis yang terdiri dari year , karakter khusus, dan nomor seri berurutan?

Berikut adalah solusi lengkapnya. Harap perhatikan bahwa ini persis sama dengan duplikat yang saya tandai - Skema database, peningkatan otomatis - Hanya detail yang berbeda.

CREATE TABLE [dbo].[STUDENT]
(
    [ID] int identity(1,1) PRIMARY KEY,
    [Stud_LName] [varchar](100) NOT NULL,
    [Stud_FName] [varchar](100) NOT NULL,
    [Stud_MName] [varchar](100) NOT NULL
)
GO

CREATE FUNCTION dbo.GetSudentId
(
    @id int
)
RETURNS varchar(10)
AS
BEGIN
    RETURN Concat(Year(Getdate()), '-', RIGHT(Concat('0000', (SELECT COUNT(*) FROM STUDENT WHERE id < @Id)), 6))
END
GO

ALTER TABLE [dbo].[STUDENT]
    ADD Stud_ID AS (dbo.GetSudentId(Id))
GO

Harap dicatat bahwa kunci utama tabel harus tetap identity kolom (seperti yang ditunjukkan dalam skrip) karena kolom yang dihitung tidak dapat menjadi kunci utama.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Urutan Eksekusi kueri SQL

  2. MASUKKAN MASSAL dengan kolom identitas (kenaikan otomatis)

  3. Cara Menemukan Pengaturan ANSI_NULLS Database di SQL Server (T-SQL)

  4. Impor file .txt ke SQL Server 2008

  5. Menangani karakter unicode yang tidak ditampilkan dengan benar dalam kueri SQL