SQL触发器无效
我想在一个表发生变时另外一个表跟着出现同样的变化,我也了一个INSERT的触发器通过了语法检查,但是进行操作却没有反映。请大家帮帮忙看看.....谢谢!CREATETRI...
我想在一个表发生变时另外一个表跟着出现同样的变化,
我也了一个INSERT的触发器 通过了语法检查,但是进行操作却没有反映。
请大家帮帮忙看看.....谢谢!
CREATE TRIGGER [TRI_NEWSDATA] ON [dbo].[KY_NEWSDATA]
FOR INSERT
AS
update [dbo].[ky_totaldata]
set ky_title=(select ky_title from KY_NEWSDATA这里我用过inserte这个表试了还是没用)
KY_NEWSDATA表有插入操作时触发更新ky_totaldata表,条件是我想要的
谢谢你们的回答, 我用过了After INSERT 也没有用
用这个好象就可以.
CREATE TRIGGER [TRI_NEWSDATA] ON [dbo].[KY_NEWSDATA]
After INSERT
AS
delete from [dbo].[ky_totaldata]
where ky_id in
(select ky_id from inserted where ky_id=inserted.ky_id)
insert into [dbo].[ky_totaldata] (KY_ID,KY_DIR,KY_CATA,KY_SOURCE,KY_ZHUANTI,KY_TITLE,KY_HTTP,KY_PINDAO ,KY_TABLE )
select KY_ID,KY_DIR,KY_CATA,KY_SOURCE,KY_ZHUANTI,KY_TITLE,KY_HTTP,'101','KY_NEWSDATA'
from inserted
where ky_id=inserted.ky_id 展开
我也了一个INSERT的触发器 通过了语法检查,但是进行操作却没有反映。
请大家帮帮忙看看.....谢谢!
CREATE TRIGGER [TRI_NEWSDATA] ON [dbo].[KY_NEWSDATA]
FOR INSERT
AS
update [dbo].[ky_totaldata]
set ky_title=(select ky_title from KY_NEWSDATA这里我用过inserte这个表试了还是没用)
KY_NEWSDATA表有插入操作时触发更新ky_totaldata表,条件是我想要的
谢谢你们的回答, 我用过了After INSERT 也没有用
用这个好象就可以.
CREATE TRIGGER [TRI_NEWSDATA] ON [dbo].[KY_NEWSDATA]
After INSERT
AS
delete from [dbo].[ky_totaldata]
where ky_id in
(select ky_id from inserted where ky_id=inserted.ky_id)
insert into [dbo].[ky_totaldata] (KY_ID,KY_DIR,KY_CATA,KY_SOURCE,KY_ZHUANTI,KY_TITLE,KY_HTTP,KY_PINDAO ,KY_TABLE )
select KY_ID,KY_DIR,KY_CATA,KY_SOURCE,KY_ZHUANTI,KY_TITLE,KY_HTTP,'101','KY_NEWSDATA'
from inserted
where ky_id=inserted.ky_id 展开
4个回答
展开全部
“我想在一个表发生变时另外一个表跟着出现同样的变化”
既然你想实现这个功能,那么在触发器里你应该像另外一个表插入数据才对。
而你的触发器是更新操作,如果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表中。
既然你想实现这个功能,那么在触发器里你应该像另外一个表插入数据才对。
而你的触发器是更新操作,如果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表中。
展开全部
把For Insert改成After INSERT,试试看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好别用触发器,最好用存储过程,衷心的建议,为了日后的大数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改成“after”试下
CREATE TRIGGER [TRI_NEWSDATA] ON [dbo].[KY_NEWSDATA]
after INSERT
CREATE TRIGGER [TRI_NEWSDATA] ON [dbo].[KY_NEWSDATA]
after INSERT
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询