Voici une solution complète. Veuillez noter que c'est exactement le même que le doublon que j'ai marqué - Schéma de base de données, autoincrement - Juste des détails différents.
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
Veuillez noter que la clé primaire de la table doit toujours être l'identity
colonne (comme indiqué dans le script) puisque la colonne calculée ne peut pas être la clé primaire.