当我删除库中表的时候,总会提示这样一条信息
该数据库不允许删除表,如果要删除表请先触发器for_drop_table
消息 3609,级别 16,状态 2,第 1 行
事务在触发器中结束。批处理已中止。
我想把它找出来删除,可是用下面的查找触发器语句,确找不到它,
SELECT   *   FROM   SYSOBJECTS   WHERE   PARENT_OBJ   =   OBJECT_ID(   'CS')   AND   XTYPE='TR' 
那位帮帮忙谢谢

解决方案 »

  1.   

    SELECT   *   
    FROM   SYSOBJECTS   
    WHERE  name = 'for_drop_table'   XTYPE='TR'
      

  2.   

    select * from sysobjects where name='for_drop_table'
      

  3.   

    SELECT       *      
    FROM       SYSOBJECTS      
    WHERE     name   =   'for_drop_table'    AND   XTYPE='TR'
    查出来的结果还是没有
      

  4.   

    直接drop trigger for_drop_table
      

  5.   

    drop   trigger   for_drop_table
    消息 3701,级别 11,状态 5,第 1 行
    无法对 触发器'for_drop_table' 执行 删除,因为它不存在,或者您没有所需的权限。
    这样操作后还是不能删除表
      

  6.   

    for_drop_table
    从名字看是2005的DDL触发器
      

  7.   

    回8楼是的05的,我看了联机丛书有这样一段代码:
    CREATE TRIGGER safety 
    ON DATABASE
    FOR DROP_TABLE, ALTER_TABLE 
    AS 
       PRINT 'You must disable Trigger "safety" to drop or alter tables!' 
       ROLLBACK
     
    我在一个测试的库中运行,然后再用
    drop trigger safety 删除
    就会给我无法删除提示:
    消息 3701,级别 11,状态 5,第 1 行
    无法对 触发器'safety' 执行 删除,因为它不存在,或者您没有所需的权限。
      

  8.   

    要不县禁止使用吧,这是个例子IF EXISTS (SELECT * FROM sys.triggers
        WHERE parent_class = 0 AND name = 'safety')
    DROP TRIGGER safety ON DATABASE;
    GO
    CREATE TRIGGER safety 
    ON DATABASE 
    FOR DROP_TABLE, ALTER_TABLE 
    AS 
       PRINT 'You must disable Trigger "safety" to drop or alter tables!' 
       ROLLBACK;
    GO
    DISABLE TRIGGER safety ON DATABASE;
    GO
      

  9.   

    删除应该drop trigger safety ON DataBase
    而不是drop trigger safety