当前位置:首页 » 编程语言 » sql数据库停用触发器
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql数据库停用触发器

发布时间: 2022-08-16 08:00:23

1. 如何用sql语句删除 SQL Server 中的触发器

-- 查看数据库已有触发器
use yourdatabase
go
select * from sysobjects where xtype='TR'
-- 查看单个触发器
exec sp_helptext '触发器名'

--删除触发器:
基本语句如下:
drop trigger trigger_name

2. sql语句中怎么把触发器暂时停止

关闭某个表上指定触发器
ALTERTABLE表名DISABLETRIGGER触发器名
打开某个表上指定触发器
ALTERTABLE表名ENABLETRIGGER触发器名

3. 禁用/启用一个库里所有表的触发器的sql怎么写

select name from sysobjects where xtype='P' --所有存储过程
select name from sysobjects where xtype='V' --所有视图
select name from sysobjects where xtype='U' --所有表
全部禁用:Alter table t1 disable trigger all;
全部生效:Alter table t1 enable trigger all;
单个禁用:Alter table t1 disable trigger 触发器名;
查出指定TR的内容:sp_helptext 't_test'
查出所有名称与内容:
select b.name as 名称,a.text as 内容,case xtype when 'p ' then '存储过程 ' else '触发器 ' end as 类型 from syscomments a,sysobjects b where object_id(b.name)=a.id and b.xtype in( 'P ', 'TR ') and b.status =0
order by 类型
查出所有非系统数据库并列出:
select * from

4. 禁用SQL 2000 触发器

试试将两个脚本合并时,在两个脚本后各加一个GO语句,如下:
脚本1;
GO
脚本2;
GO

5. 在SQL中,为什么我创建了一个DDL触发器后不能删除请高手为我解答。

如果要删除的触发器位于样式或控件模板中,请确保处于该样式或模板的编辑模式下。

6. sql数据库触发器求指导

这个完全没有必要去创建触发器啊。

直接外键设置成 DELETE CASCADE 方式 的就可以了, 一行触发器的代码也不用写。


下面是具体的对比例子:

--创建测试主表.ID是主键.
CREATETABLEtest_main(
idINTNOTNULL,
valueVARCHAR(10),
PRIMARYKEY(id)
);


--创建测试子表.
CREATETABLEtest_sub(
idINTNOTNULL,
main_idINT,
valueVARCHAR(10),
PRIMARYKEY(id)
);


--插入测试主表数据.
INSERTINTOtest_main(id,value)VALUES(1,'ONE');
INSERTINTOtest_main(id,value)VALUES(2,'TWO');

--插入测试子表数据.
INSERTINTOtest_sub(id,main_id,value)VALUES(1,1,'ONEONE');
INSERTINTOtest_sub(id,main_id,value)VALUES(2,2,'TWOTWO');



上面是 测试表+测试数据

下面是 默认外键约束方式的例子

1>ALTERTABLEtest_subADDCONSTRAINTmain_id_consFOREIGNKEY(main_id)REFERENCEStest_main;
2>go
1>DELETE
2>test_main
3>WHERE
4>ID=1;
5>go
消息547,级别16,状态1,服务器HOME-BED592453CSQLEXPRESS,第1行
DELETE语句与REFERENCE约束"main_id_cons"冲突。该冲突发生于数据库"Stock",表"db
o.test_sub",column'main_id'。
语句已终止。


看看, 提示的错误信息, 和你的错误信息, 格式上是一样的。


下面是使用DELETE CASCADE 方式 的外键约束的例子

(需要删除掉前面创建的那个外键约束)


1>--创建外键(使用ONDELETECASCADE选项,删除主表的时候,同时删除子表)
2>ALTERTABLEtest_sub
3>ADDCONSTRAINTmain_id_cons
4>FOREIGNKEY(main_id)REFERENCEStest_mainONDELETECASCADE;
5>
6>--测试删除主表数据.将成功地执行.
7>DELETE
8>TEST_MAIN
9>WHERE
10>ID=1;
11>
12>--测试检索子表,应该只有一条main_id=2的数据.
13>SELECT
14>*
15>FROM
16>test_sub;
17>
18>go

(1行受影响)
idmain_idvalue
--------------------------------
22TWOTWO

(1行受影响)

7. SQL。。如何停用,删除一个数据库中所有的触发器

use 库名
go
alter *
from sysobjects
where type='TR'
go
--以上是显示当前库中所有的触发器--

use 库名
drop trigger test1
--根据表触发器名一个一个的删就行了,顺便说一下没有一下子全部删除的命令,祝你好运--

8. 怎样禁止一个SQL触发器

在写触发器的时候,把程序体写成存储过程,然后由触发器调用过程,没用的时候可以删除,想用的时候直接加上exec就可以了,呵呵,我都是这么做的

9. sql server 2008怎么停止触发器

-- 查看数据库已有触发器 use yourdatabase go select * from sysobjects where xtype='TR' -- 查看单个触发器 exec sp_helptext '触发器名' --删除触发器: 基本语句如下: drop trigger trigger_name

10. SQL 如何禁用触发器

--禁用
alter table [tablename]
disable all trigger

--恢复
alter table [tablename]
enable all trigger

详细语法,请F1查询帮助