我有一个库存表,主键是DVD编号,我想写一个触发器,当插入的数据中,主键为空时,输出"编号不能为空".下面是我写的触发器.插入的时候,虽然提示出错,但提示的错误信息是SQL自带的信息,不是我想要的"编号不能为空".create trigger t
on 库存 for insert
as
 if exists(select * from inserted where DVD编号=null)
 begin
  print('编号不能为空')
rollback
 end高手看看对不对?不对怎么写啊?

解决方案 »

  1.   

    --这个功能应该在前端去完成,在SQL中是捕捉不到这个信息的。
      

  2.   

    create table 库存(DVD编号 int,name varchar(20))create trigger ttr
    on 库存 for insert
    as
    if exists(select * from inserted where DVD编号 is null)
    begin
    raiserror('自定义的错误',16,-1)
    end insert into 库存(DVD编号,name ) select null,'aa'
    --消息 50000,级别 16,状态 1,过程 ttr,第 7 行
    --自定义的错误
    select * from 库存