我写的sql,如果读者信息表中状态不是正常,就不能在借阅表中添加记录

initsself 2012-11-10 10:49:10
CREATE TRIGGER before_insert_jieyue
ON [dbo].[借阅信息表]
for INSERT,update
AS BEGIN
IF (select 状态
     from dbo.读者信息表 
     where 读者编号=(select 读者编号 from inserted)) not in('正常')
PRINT '账号不正常'
ROLLBACK
END
请大神看看哪错了
...全文
185 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
开启时代 2012-11-10
  • 打赏
  • 举报
回复
CREATE TRIGGER before_insert_jieyue ON [dbo].[借阅信息表] for INSERT,update AS BEGIN IF exists(select 状态      from dbo.读者信息表       where 读者编号=(select 读者编号 from inserted) and 状态 <>'正常') PRINT '账号不正常' ROLLBACK END
發糞塗牆 2012-11-10
  • 打赏
  • 举报
回复
CREATE TRIGGER before_insert_jieyue ON [dbo].[借阅信息表]
     FOR INSERT, UPDATE
 AS
     BEGIN
         IF EXISTS ( SELECT  1
                     FROM    dbo.读者信息表
                     WHERE   读者编号 IN ( SELECT    读者编号
                                       FROM      inserted )
                             AND 状态 NOT IN ( '正常' ) ) 
             PRINT '账号不正常'
         ROLLBACK
     END
initsself 2012-11-10
  • 打赏
  • 举报
回复
引用 2 楼 DBA_Huangzj 的回复:
CREATE TRIGGER before_insert_jieyue ON [dbo].[借阅信息表] for INSERT,update AS BEGIN IF exists(select 状态      from dbo.读者信息表      where 读者编号=(select 读者编号 from inserted)) not in('正……
换成in也不对,错误如楼上
initsself 2012-11-10
  • 打赏
  • 举报
回复
引用 1 楼 lixzhong 的回复:
CREATE TRIGGER before_insert_jieyue ON [dbo].[借阅信息表] for INSERT,update AS BEGIN IF exists(select 状态 from dbo.读者信息表 where 读者编号=(select 读者编号 from inserted)) not in('正常') PRINT ……
还是不对,错误如下: 消息 102,级别 15,状态 1,过程 before_insert_jieyue,第 1 行 ' ' 附近有语法错误。 消息 102,级别 15,状态 1,过程 before_insert_jieyue,第 1 行 ')' 附近有语法错误。
發糞塗牆 2012-11-10
  • 打赏
  • 举报
回复
CREATE TRIGGER before_insert_jieyue ON [dbo].[借阅信息表] for INSERT,update AS BEGIN IF exists(select 状态      from dbo.读者信息表       where 读者编号=(select 读者编号 from inserted)) not in('正常') --红字的等号换成in会不会好点?inserted表里面一定是只有一条数据? PRINT '账号不正常' ROLLBACK END
开启时代 2012-11-10
  • 打赏
  • 举报
回复
CREATE TRIGGER before_insert_jieyue ON [dbo].[借阅信息表] for INSERT,update AS BEGIN IF exists(select 状态      from dbo.读者信息表       where 读者编号=(select 读者编号 from inserted)) not in('正常') PRINT '账号不正常' ROLLBACK END
initsself 2012-11-10
  • 打赏
  • 举报
回复
引用 5 楼 DBA_Huangzj 的回复:
SQL code123456789101112CREATE TRIGGER before_insert_jieyue ON [dbo].[借阅信息表] FOR INSERT, UPDATE AS BEGIN IF EXISTS ( SELECT 1 FROM dbo.读者信息表 ……
不错奥,经过运行,成功!不过我的为什么不对?

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧