[英]Trigger for INSERT to validate input data in SQL Server?
我的問題:
表 dbo.student 有 'StudentID' 像 'SV001'。 如何創建觸發器來檢查數據插入 dbo.student 的“StudentID”以“SV”開頭,數字在 000 到 100 之間。
示例:“SV099”是要插入的有效 ID,“SV101”無效
使用SQL constraints
CHECK (CAST(SUBSTRING(StudentID,3,LEN(StudentID)) AS int) <= 100)
例子:
create table tb(StudentID varchar(10) CHECK (CAST(SUBSTRING(StudentID,3,LEN(StudentID)) AS int) <= 100));
//test data
insert into tb values('sv000'); //valid
insert into tb values('sv100'); //valid
insert into tb values('sv101'); //invalid
db<>fiddle中的演示
或者如果你想使用Trigger
注意:必須使用inserted
關鍵字才能訪問剛剛添加的記錄
Create Trigger TriggerStudentID
On tb
AFTER INSERT
As
Begin
Declare @StudentID varchar(10);
SET @StudentID = (Select TOP 1 StudentID From inserted);
If (CAST(SUBSTRING(@StudentID,3,LEN(@StudentID)) AS int) > 100)
RollBack Transaction
END
db<>fiddle中的演示
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.