CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

大侠们。。帮我看看这触发器有什么问题吧。。急!在线等!

楼主pgwron2004(小猪小猪我爱你)2005-08-02 09:37:38 在 MS-SQL Server / 基础类 提问

create   trigger   tr_insert   on   TRADE  
  for   insert  
  as  
  EXEC   master..xp_cmdshell   'bcp   TRADE   out   c:\temp1.xls   -c   -q   -S"DL"   -U"sa"   -P"1"'    
  go    
   
  单独执行EXEC   master..xp_cmdshell   'bcp   TRADE   out   c:\temp1.xls   -c   -q   -S"DL"   -U"sa"   -P"1"'    
  是好的。。但一用触发器触发就死机。。高手们帮我看看吧!!谢谢!!急啊!!! 问题点数:100、回复次数:10Top

1 楼coolingpipe(冷箫轻笛)回复于 2005-08-02 09:51:39 得分 0

如果在查询分析器里用语句插入数据也死机马?Top

2 楼pgwron2004(小猪小猪我爱你)回复于 2005-08-02 09:54:57 得分 0

没在查询分析器试。。是直接往表里加的。。我现在去试下。谢谢Top

3 楼pgwron2004(小猪小猪我爱你)回复于 2005-08-02 10:12:04 得分 0

还是死机。。帮我看看这触发器写得有不有问题吧。。谢谢啊!!Top

4 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2005-08-02 10:25:48 得分 0

显然死锁了。  
   
  在对数据表TRADE执行INSERT操作的事件触发了触发器,而此时TRADE被INSERT语句独占,执行bcp操作时因为目标表TRADE被锁,导致bcp操作无法执行,而触发器执行操作未结束,INSERT语句持有的锁不会释放。Top

5 楼pgwron2004(小猪小猪我爱你)回复于 2005-08-02 10:28:18 得分 0

那。。我该怎么改啊。。我对触发器不熟。。能指导下吗。。谢谢Top

6 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2005-08-02 10:52:23 得分 0

试试:  
  ------------------------------------------------------------------------------  
  alter   trigger   tr_insert   on   TRADE  
  instead   of   insert  
  as  
  insert   into   TRADE   select   *   from   inserted  
  EXEC   master..xp_cmdshell   'bcp   TRADE   out   c:\temp1.xls   -c   -q   -S"DL"   -U"sa"   -P"1"'    
  goTop

7 楼pgwron2004(小猪小猪我爱你)回复于 2005-08-02 11:44:38 得分 0

好的。。刚才有点忙。。对不起啊。。我现在试Top

8 楼hisi(海山)(随机种子)回复于 2005-08-02 12:42:25 得分 0

libin_ftsafe(子陌红尘)的方法不行,一样堵塞。  
   
  这样:  
  create   trigger   tr_insert   on   TRADE  
  for   insert  
  as  
  commit   tran   --提交事务  
  EXEC   master..xp_cmdshell   'bcp   TRADE   out   c:\temp1.xls   -c   -q   -S"DL"   -U"sa"   -P"1"'    
  goTop

9 楼clz1982ssa(阿连)回复于 2005-08-02 13:10:05 得分 0

都是强人,小弟来了没什么说的了.支持楼上的Top

10 楼bugchen888(臭虫)回复于 2005-08-02 14:55:57 得分 0

hisi(海山)(随机种子)   正解!  
  SQLServer在启动触发器时会自动开启一个事务,所以在触发器里最好先Commit一下,把这个事务提交了,这样对原表的lock也就释放了。Top

相关问题

  • 急!触发器
  • 帮我看看这个触发器,急!!!
  • 在线等待!!!update触发器问题!急急,求高手帮忙啊
  • oracle中设计触发器,如何得到触发该触发器的语句?急,在线等待,谢谢!
  • 关于触发器?在线等哟,帮帮忙嘛!
  • 触发器 问题 大家来帮帮忙 在线 等
  • 有关于触发器的紧急问题?在线等待???
  • 请教触发器问题,急,在线等,分不够可加!!!!!!
  • 江湖救急,触发器问题,在线等待中......?
  • #######江湖救急,触发器问题,在线等待中......? #######

关键词

  • 执行
  • sa
  • xp
  • 触发器
  • bcp
  • 死机
  • 谢谢
  • trade
  • cmdshell
  • 事务

得分解答快速导航

  • 帖主:pgwron2004

相关链接

  • SQL Server类图书

广告也精彩

反馈

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