Hier ist eine Komplettlösung. Bitte beachten Sie, dass es genau dasselbe ist wie das Duplikat, das ich markiert habe - Datenbankschema, Autoinkrement - Nur andere Details.
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
Bitte beachten Sie, dass der Primärschlüssel der Tabelle immer noch die identity
sein muss Spalte (wie im Skript gezeigt), da die berechnete Spalte nicht der Primärschlüssel sein kann.