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

如果’馆内剩余本数‘为0,或者当前可借数为0,则回滚
如果’馆内剩余本数‘为0,或者当前可借数为0,则回滚提示错误如下:
消息 156,级别 15,状态 1,过程 for_insert_jieyue,第 9 行
关键字 'or' 附近有语法错误。
消息 102,级别 15,状态 1,过程 for_insert_jieyue,第 14 行
')' 附近有语法错误。
代码如下
create TRIGGER for_insert_jieyue ON [dbo].[借阅信息表]
     FOR INSERT
 AS
     BEGIN
         IF EXISTS ( (SELECT  1
                     FROM    dbo.图书资料表
                     WHERE   图书编号 IN ( SELECT    图书编号
                                       FROM      inserted )
                             AND 馆内剩余本数  IN ( '0' )) or
                     (SELECT  1
                     FROM    dbo.读者信息表
                     WHERE   读者编号 IN ( SELECT    读者编号
                                       FROM      inserted )
                             AND 当前可借数  IN ( '0' )))
                 rollback         
     END
------最佳解决方案--------------------
create TRIGGER for_insert_jieyue ON [dbo].[借阅信息表]
     FOR INSERT
 AS
     BEGIN
         IF EXISTS (SELECT  1 FROM    dbo.图书资料表 WHERE   图书编号 IN ( SELECT    图书编号 FROM  inserted) AND 馆内剩余本数  IN ( '0' )) 
         OR EXISTS     (SELECT  1  FROM    dbo.读者信息表   WHERE   读者编号 IN ( SELECT    读者编号  FROM      inserted ) AND 当前可借数  IN ( '0' ))
                 rollback         
     END