日期:2014-05-17  浏览次数:20607 次

sql中如何通过触发器实现某列禁止修改
如题~这是数据表的结构

这是我自己写的sql语句,但是总是报错……
--通过触发器实现类别名称不能更改
create trigger NoModifyType
before update
on CommodityType
for each row 
while(new.CommodityTypeName<>old.CommodityTypeName)
begin
--print '禁止修改商品类型名称!'
Raise.Application.Error(-20001, '不能修改');
end

错误信息:

我应该怎么修改呢?

------解决方案--------------------
试试这个:
--通过触发器实现类别名称不能更改
create trigger NoModifyType
on CommodityType
for update

if update(CommodityType)
begin
--print '禁止修改商品类型名称!'
raiserror('%s',16,1, '不能为空')
end