Aquí hay una solución completa. Tenga en cuenta que es exactamente igual que el duplicado que he marcado - Esquema de base de datos, autoincremento - Solo detalles diferentes.
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
Tenga en cuenta que la clave principal de la tabla debe seguir siendo la identity
columna (como se muestra en el script) ya que la columna calculada no puede ser la clave principal.