Sqlserver里用触发器限制字符

来源:百度知道 编辑:UC知道 时间:2024/07/02 12:03:34
数据表名:Article
字段:
Id Id编号
Title 标题
Content 内容
如何在SqlServer里限制Title字段某一个字符,比如说"$AAAA"写入到Title字段里!

触发器语句如下:
CREATE TRIGGER tri_Import_Update ON dbo.Article
FOR UPDATE,INSERT
AS
DECLARE @Title varchar(255) '把255改为你的Title字段宽
SELECT @Title=Title FROM INSERTED
if @Title="$AAAA" begin
raiserror('Title字段内数据非法',16,1)
return
end

说明:raiserror()会产生一个报错并使得Update/Insert动作回滚。
要注意的是,上面的算法只适用于单条数据的Update/Insert,如果存在批量Update/Insert,则它只是检查最后一条(这是触发器的固有特性)。

可以对它做改造,要用循环(游标或其他方法)逐条数据做检查。

用触发器的效率还不如直接在程序里控制好

还是直接在程序逻辑里判断吧