当我删除库中表的时候,总会提示这样一条信息
该数据库不允许删除表,如果要删除表请先触发器for_drop_table
消息 3609,级别 16,状态 2,第 1 行
事务在触发器中结束。批处理已中止。
我想把它找出来删除,可是用下面的查找触发器语句,确找不到它,
SELECT * FROM SYSOBJECTS WHERE PARENT_OBJ = OBJECT_ID( 'CS') AND XTYPE='TR'
那位帮帮忙谢谢
该数据库不允许删除表,如果要删除表请先触发器for_drop_table
消息 3609,级别 16,状态 2,第 1 行
事务在触发器中结束。批处理已中止。
我想把它找出来删除,可是用下面的查找触发器语句,确找不到它,
SELECT * FROM SYSOBJECTS WHERE PARENT_OBJ = OBJECT_ID( 'CS') AND XTYPE='TR'
那位帮帮忙谢谢
FROM SYSOBJECTS
WHERE name = 'for_drop_table' XTYPE='TR'
FROM SYSOBJECTS
WHERE name = 'for_drop_table' AND XTYPE='TR'
查出来的结果还是没有
消息 3701,级别 11,状态 5,第 1 行
无法对 触发器'for_drop_table' 执行 删除,因为它不存在,或者您没有所需的权限。
这样操作后还是不能删除表
从名字看是2005的DDL触发器
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' 执行 删除,因为它不存在,或者您没有所需的权限。
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
而不是drop trigger safety