我有一个大学管理数据库和表格:
Department(Id, Name, Code)
Student(Id, Name, Email, EnrollDate, RegNo, Department)
我想报名参加学生。当他或她注册RegNo时会自动生成。像这种格式--XXX。
Example : CSE-2017-001, EEE-2016-002, BBA-2014-015.
当学生注册特定部门时,最后3部分增量自动。 如何在Sql Server Management Studio中执行此操作。
答案 0 :(得分:0)
作为解决方案。
1 - 为保持ID创建SEQUENCE
。或者你可以使用表格标识。
CREATE SEQUENCE SeqStudentIDs AS INT
MINVALUE 1
CYCLE;
2 - 在插入后为TRIGGER
创建RegNo
。
CREATE TRIGGER TRG_Student_ForCreateRegNo ON Student AFTER INSERT
AS
BEGIN
UPDATE Student set
RegNo = CONCAT( (SELECT TOP 1 Code FROM Department WHERE Id = inserted.Department ) , '-' , DATEPART(YEAR,inserted.EnrollDate), '-', RIGHT('000' + CONVERT(VARCHAR,(NEXT VALUE FOR SeqStudentIDs )),3) )
FROM Student INNER JOIN inserted ON Student.Id = inserted.Id
END