如何在SSMS中生成具有固定格式的字符串

时间:2017-10-05 05:31:54

标签: sql sql-server ssms

我有一个大学管理数据库和表格:

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中执行此操作。

1 个答案:

答案 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