Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak w programie SQL Server wygenerować identyfikator klucza podstawowego automatycznego przyrostu, który składa się z roku , znaku specjalnego i numeru serii sekwencyjnej?

Oto kompletne rozwiązanie. Pamiętaj, że jest to dokładnie to samo, co duplikat, który oznaczyłem — Schemat bazy danych, autoinkrementacja - Tylko inne szczegóły.

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

Pamiętaj, że kluczem podstawowym tabeli musi być nadal identity kolumna (jak pokazano w skrypcie), ponieważ wyliczona kolumna nie może być kluczem podstawowym.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. XML serwera SQL istnieje()

  2. Ustaw wartość początkową dla kolumny z autoinkrementacją

  3. Jak dobry jest typ danych geograficznych w sql server 2008?

  4. Jak utworzyć ograniczenie klucza obcego z opcją ON DELETE SET NULL w programie SQL Server — samouczek SQL Server / TSQL, część 81

  5. Tworzenie Entity Framework Model obejmuje wiele baz danych