⑴ sql触发器无效
“我想在一个表发生变时另外一个表跟着碰困出现同样的变化”
既然你想实现这信轿个功能,那么在触发器里你应该像另外一个表插入数据才对。
而你的触发器是更新操作,如果ky_totaldata表没有数笑坦念据的话,肯定不会有什么变化。
假如两个表结构相同,那么用如下触发器
create trigger [TRI_NEWSDATA]
ON [dbo].[KY_NEWSDATA]
for insert
as
insert into [dbo].[ky_totaldata]
select *
from inserted
向KY_NEWSDATA表插入数据后,就会触发进ky_totaldata表中。
⑵ sql触发器不起作用
触纤乎埋发器能应该正常被触发. 问题在于你的条件if @amount = null, 这个顷物表达式的结果永远都是false, 故毁蚂你的update语句不会被执行. 要改成if @amount is null.
⑶ SQL触发器代码不能执行
你序列号创建了么?
SQL>CREATESEQUENCEtest_sequence2
2incrementby1--每次递增1
3startwith1--从1开始
4nomaxvalue--没有最大值
5培森minvalue1--最小值=1
6NOCYCLE;--不循环
Sequencecreated.
SQL>CREATETABLEtest_create_tab2(
2idINT,
3valVARCHAR(10),
4PRIMARYKEY(id)
5);
Tablecreated.
SQL>
2数乱BEFOREINSERTONtest_create_tab2
3FOREACHROW
4BEGIN
5SELECTtest_sequence2.nextvalINTO:new.idFROMal;
6END;
7/
Triggercreated.
SQL>INSERTINTOtest_create_tab2(val)VALUES('NOid'薯中档);
1rowcreated.
SQL>INSERTINTOtest_create_tab2(id,val)VALUES(1,'idnouse');
1rowcreated.
SQL>SELECT*FROMtest_create_tab2;
IDVAL
------------------------------
1NOid
2idnouse
⑷ SQL2005触发器不运行
看了一下,可能会报错的只有这一句
if (select count(*) from 销售订单罩铅表
where 订单号橘激=(select 订单号 from inserted))>1
当(select 订单号 from inserted) 有多个返回值是不能用物伍好 = ,会报错,你把语句改成
if (select count(*) from 销售订单表
where 订单号 in (select 订单号 from inserted))>1
试试
⑸ sql server 触发器无法使用是因为什么
应该是写入的数据不符合B表的规则,所以造成写入错误,就回退了。B表错了,A表就同样不会写入成功了。
⑹ 为什么这么简单的sql触发器都不能执行
触发器 目的往往是为了保证数据的一致性,所以在服务器端设置触发器,一旦用户 修改 删除,或者添加了某一个 字段的数据,然后设置好的触樱晌发器自动执行另一个 修改 删除 或者添加操作,以保证数据的关联性 或者一致性。
你的触发器内容为散激 一冲颂袜个 简单的 select 查询,个人认为好像没有意义。
另外错误提示是 语法问题。你可以再仔细检查下。
⑺ sql 触发器不执行:
逻辑问题,begin 和end的位置不对,事务无法正常执行!
⑻ sql触发器怎么不起作用,没有数据信息,代码如下:
你的select 部分有语法错误啊,备缺开始节点=(select 节点名称 from A008物理节点表 where ID=开始节点ID) 这个地方是不能这样写的。如果你是要显示固定的开始节点,就把“开始节点=”去掉竖滚唯,如果你是想筛选开始节点是(select 节点名称 from A008物理节余培点表 where ID=开始节点ID) 这个值的,把它写到where条件中去。