CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

触发器!

楼主adminis(古董)2005-04-01 13:49:36 在 MS-SQL Server / 基础类 提问

 
   
  控制输入内容的触发器。  
   
  比如:  
   
  CREATE   TRIGGER   T_Test   ON   [dbo].[Test]    
  Instead   of   Insert,   Update --   For   Insert,   Updata也试过  
  AS  
   
  if     Exists(Select   Name   from   Inserted   where   Name  
  in   (Select   Name   from   Test)  
  )  
  Rollback   Tran  
   
   
  这样写,数据根本没有办法写进去  
  应该怎么来写? 问题点数:20、回复次数:4Top

1 楼jinjazz(近身剪)回复于 2005-04-01 13:51:44 得分 9

CREATE   TRIGGER   trig_customerinfo_deleteupdate  
  ON   customerinfo  
  FOR   UPDATE    
  AS    
  If   UPDATE(customerno)  
  BEGIN  
  select   orderid   from   orderinfo   where   orderinfo.customerno   =   (select   customerno   from   deleted)  
  if   @@rowcount   >   0  
  begin  
  RAISERROR   ('不能修改编号,有相应的记录在订单表上',   16,   1)  
  ROLLBACK   TRANSACTION  
  end  
  END  
  GOTop

2 楼cutelion(MADEinCNNC)回复于 2005-04-01 14:47:50 得分 0

学习!Top

3 楼yesyesyes()回复于 2005-04-01 16:56:53 得分 2

不用触发器,在name上建个唯一约束不就行了嘛Top

4 楼real_name(*真名)回复于 2005-04-02 10:13:36 得分 9

CREATE   TRIGGER   T_Test   ON   [dbo].[Test]    
  For   Insert,   Updata    
  AS  
      Select   Name   from   Inserted   where   Name  
  in   (Select   Name   from   Test)  
      if   @@rowcount>1    
  Rollback   Tran  
  Top

相关问题

  • 触发器?!
  • 触发器
  • 触发器
  • 求触发器
  • 触发器
  • 触发器(ORACLE)!!!!!!!!!
  • 触发器(ORACLE)!!!!!!!!!
  • oracle 触发器??
  • 求触发器!!!
  • 触发器

关键词

  • 触发器
  • customerno
  • updata
  • orderinfo
  • rollback tran
  • rowcount
  • inserted
  • dbo
  • where namein
  • createtrigger t

得分解答快速导航

  • 帖主:adminis
  • jinjazz
  • yesyesyes
  • real_name

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo