问一下,SQL 2000触发器的问题?

wag_enu 2009-11-09 07:21:04
1,一张表最多可以写多少个触发器?
2,只知道一个表名如何清除其触发器?
...全文
83 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄_瓜 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sql77 的回复:]
SQL codesp_helptrigger'TB'

也可以通过这样先查看下有哪些触发器,然后用DROPTRIGGER
[/Quote]
学习
黄_瓜 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sql77 的回复:]
引用 3 楼 beirut 的回复:
以下是删除一个数据库中所有的触发器 
   
SQL code--触发器DECLARE@STRINGVARCHAR(8000)WHILEEXISTS(SELECT  NAMEFROM  SYSOBJECTSWHERE  XTYPE='TR')BEGINSELECT@STRING='DROP  TRIGGER'+NAME+CHAR(13)FROM  SYSOBJECTSWHERE  XTYPE='TR'EXEC(@STRING)ENDGO
   


要修改一下

  DECLARE  @STRING  VARCHAR(8000) 
  WHILE  EXISTS(SELECT  NAME  FROM  SYSOBJECTS  WHERE  XTYPE='TR') 
  BEGIN 
  SELECT  @STRING='DROP  TRIGGER  '+NAME+  CHAR(13)  FROM  SYSOBJECTS  WHERE  XTYPE='TR' AND ID=OBJECT_ID('TB')
  EXEC(@STRING) 
  END
[/Quote]
是的,要不会删了所有的触发器 呵呵
SQL77 2009-11-09
  • 打赏
  • 举报
回复
sp_helptrigger 'TB'

也可以通过这样先查看下有哪些触发器,然后用DROP TRIGGER
tanshi 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 beirut 的回复:]
以下是删除一个数据库中所有的触发器

SQL code--触发器DECLARE@STRINGVARCHAR(8000)WHILEEXISTS(SELECT NAMEFROM SYSOBJECTSWHERE XTYPE='TR')BEGINSELECT@STRING='DROP TRIGGER'+NAME+CHAR(13)FROM SYSOBJECTSWHERE XTYPE='TR'EXEC(@STRING)ENDGO


[/Quote]
强!学习了~~
SQL77 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 beirut 的回复:]
以下是删除一个数据库中所有的触发器 
   
SQL code--触发器DECLARE@STRINGVARCHAR(8000)WHILEEXISTS(SELECT NAMEFROM SYSOBJECTSWHERE XTYPE='TR')BEGINSELECT@STRING='DROP TRIGGER'+NAME+CHAR(13)FROM SYSOBJECTSWHERE XTYPE='TR'EXEC(@STRING)ENDGO
   

[/Quote]
要修改一下

DECLARE @STRING VARCHAR(8000)
WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE XTYPE='TR')
BEGIN
SELECT @STRING='DROP TRIGGER '+NAME+ CHAR(13) FROM SYSOBJECTS WHERE XTYPE='TR' AND ID=OBJECT_ID('TB')
EXEC(@STRING)
END
ycagri 2009-11-09
  • 打赏
  • 举报
回复
很详细了。。。。。
tanshi 2009-11-09
  • 打赏
  • 举报
回复
一张表最多可以写多少个触发器?
==================================
这个不太清楚
删除触发器:打开企业管理器,右键表名——>所有任务——>管理触发器,删除就行了
黄_瓜 2009-11-09
  • 打赏
  • 举报
回复
以下是删除一个数据库中所有的触发器

  --触发器   
DECLARE @STRING VARCHAR(8000)
WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE XTYPE='TR')
BEGIN
SELECT @STRING='DROP TRIGGER '+NAME+ CHAR(13) FROM SYSOBJECTS WHERE XTYPE='TR'
EXEC(@STRING)
END

GO


黄_瓜 2009-11-09
  • 打赏
  • 举报
回复
2、select * from sysobjects where xtype='TR' and parent_obj=object_id('表名')
TR = 触发器
黄_瓜 2009-11-09
  • 打赏
  • 举报
回复
1、每个数据表的触发器个数 受数据库中的对象个数限制
嵌套触发器层数 32ceng

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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