注册 登录
编程论坛 SQL Server论坛

查找一张多记录的表,检查是否字段A含有等于2的记录,有就终止插入的触发器如何编写?

yiyaozjk 发布于 2012-12-03 19:58, 529 次点击
查找一张多记录的表,检查是否字段A含有等于2的记录,有就终止插入的触发器如何编写?

我的代码如下不正确


CREATE TRIGGER  check_quangjian  
   ON  PU_AppVouchs
   AFTER INSERT,UPDATE>
AS
BEGIN
    declare @cInvCode  varchar(20),
    select  @cInvCode=cInvCode from inserted
    if  @cInvCode='H745-L000-001' or @cInvCode='H728-G327-K02'  or 'H601-C100-B02' then   这样写可以吗?
    --if (select cInvCode from inserted where cInvCode in ('H745-L000-001','H728-G327-K02' ,'H601-C100-B02','H728-G300-003','H601-C108-P01','H601-C141-001','H609-B001-H03','H729-G300-B03','H728-G445-K02') then  这样写可以吗?
         --return
        rollback    --加滚        
        raiserror("不能有全检产品,只能保存在一张到货单中!",16,1)        
    endif
    if (select COUNT(*) from inserted )>5 then
        rollback    --加滚
        raiserror("到货单不能保存5条以上的记录!",16,1)
    endif
END
GO
但报错
4 回复
#2
cnfarer2012-12-03 20:37
必须使用T-SQL的语法,否则当然报错了.
#3
yiyaozjk2012-12-03 20:53
版主能否明确一下是哪条没有符合T-SQL的语法??帮忙修改一下。。我的基础不好。谢谢

#4
yiyaozjk2012-12-04 08:06
版主能否明确一下是哪条没有符合T-SQL的语法??帮忙修改一下。。我的基础不好。谢谢
#5
yiyaozjk2012-12-07 08:04
知道了。SQL判断
if  @cInvCode='H745-L000-001'     
    begin
......        
    end
方式
1