Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何禁用触发器?_Sql_Sql Server - Fatal编程技术网

Sql 如何禁用触发器?

Sql 如何禁用触发器?,sql,sql-server,Sql,Sql Server,如果它是一个数据库级触发器,并且您想专门禁用一个触发器,那么使用 CREATE TRIGGER DEMO_DBLEVELTRIGGER ON DATABASE AFTER CREATE_TABLE AS BEGIN PRINT 'CREATION OF NEW TABLES NOT ALLOWED' ROLLBACK TRANSACTION END GO DISABLE TRIGGER ALL ON schemaname.tablename; GO 如果它是数据库级触发器,并且您希望禁用

如果它是一个数据库级触发器,并且您想专门禁用一个触发器,那么使用

CREATE TRIGGER DEMO_DBLEVELTRIGGER
ON DATABASE
AFTER CREATE_TABLE
AS
BEGIN
PRINT 'CREATION OF NEW TABLES NOT ALLOWED'
ROLLBACK TRANSACTION
END
GO
DISABLE TRIGGER ALL ON schemaname.tablename;
GO  

如果它是数据库级触发器,并且您希望禁用一个表上的所有触发器,则使用

DISABLE TRIGGER triggername ON DATABASE;  
GO  

如果它是数据库级触发器,并且希望禁用该特定数据库中的所有触发器,则使用

CREATE TRIGGER DEMO_DBLEVELTRIGGER
ON DATABASE
AFTER CREATE_TABLE
AS
BEGIN
PRINT 'CREATION OF NEW TABLES NOT ALLOWED'
ROLLBACK TRANSACTION
END
GO
DISABLE TRIGGER ALL ON schemaname.tablename;
GO  
如果触发器具有服务器作用域,则使用下面的

DISABLE TRIGGER ALL ON DATABASE;  
GO  
如果要禁用所有具有服务器作用域的触发器,请使用

CREATE TRIGGER DEMO_DBLEVELTRIGGER
ON DATABASE
AFTER CREATE_TABLE
AS
BEGIN
PRINT 'CREATION OF NEW TABLES NOT ALLOWED'
ROLLBACK TRANSACTION
END
GO
DISABLE TRIGGER ALL ON schemaname.tablename;
GO  
DISABLE TRIGGER triggername ON ALL SERVER
您必须谨慎使用
ALL
..Docs state

SQL Server在为合并复制而发布的数据库中创建触发器。在已发布的数据库中指定“所有”将禁用这些触发器,从而中断复制。在指定“全部”之前,请验证当前数据库是否未发布以进行合并复制

注意:
使用ALTERTRIGGER语句更改触发器将启用触发器

参考文献:

由于它是数据库级触发器,因此必须指定要在数据库上删除触发器

所以不是

DISABLE TRIGGER ALL ON ALL SERVER


当然,从您创建它的任何数据库的上下文来看。

如果您不是创建它的管理员,那么您就不需要句号。您可能正在寻找一个
DROP TRIGGER DEMO\u DBLEVELTRIGGER
听起来好像有人不希望允许创建新表……我自己在了解新表的过程中触发了它。然而,我所学的课程并没有解释如何禁用它们。我也有管理员权限,当我执行DROP TRIGGER DEMO_DBLEVELTRIGGER时,触发器仍然没有被删除。他想禁用,而不是删除它。他在评论中提到删除它。Wisdow仍然有效;如果需要,只需将
drop
替换为
disable
;转到我得到的错误是“找不到对象”AdventureWorks2012,因为它不存在或您没有权限