防止从对象名称移除_字符TRIGGER

时间:2015-07-16 05:52:51

标签: sql-server tsql

在我的数据库中,所有对象名称都以'_ GIDXXX'字结尾。

我有一个UPDATE触发器,确保没有人会改变对象名称的结尾。例如,我的对象名为 CAR_GID23232

问题是用户可以删除' _ '字符并触发不会触发(我不喜欢不抓住这个)。

IF EXISTS (
SELECT Srt_Name,Srt_Id               
FROM inserted
WHERE Srt_Name not like '%_GID'+CONVERT(varchar(max),Srt_GidNumer)
)

BEGIN
RAISERROR ('Make sure that at the end of the name there is _GIDXXXX', 16, 1)
END

编辑:

主要目标是在对象名称的末尾加上_GIDXXX,但仍然可以删除_字符,例如从CAR_GID2323到CARGID2323并且RAISEERROR不会出现。

1 个答案:

答案 0 :(得分:5)

试试这个:

IF EXISTS (
SELECT Srt_Name,Srt_Id               
FROM inserted
WHERE Srt_Name not like '%[_]GID'+CONVERT(varchar(max),Srt_GidNumer
)