SQL Server 2005 触发器

chuzhongbiyewenhua 2010-12-30 04:18:56
如何创建触发器,一个表中添加了一条信息,该信息有个编号,另外一张表也就也插于一条信息.
...全文
91 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuzhongbiyewenhua 2010-12-30
  • 打赏
  • 举报
回复
我试下插入失败的情况,稍后结贴, 谢谢你们了。
dawugui 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 chuzhongbiyewenhua 的回复:]
@@rownumber 不判断,不会出现A表添加失败的情况还触发B表添加数据吗?
[/Quote]失败了,inserted中无数据.
chuzhongbiyewenhua 2010-12-30
  • 打赏
  • 举报
回复
@@rownumber 不判断,不会出现A表添加失败的情况还触发B表添加数据吗?
dawugui 2010-12-30
  • 打赏
  • 举报
回复
没必要用@@rownumber直接这样即可.

CREATE TRIGGER trigger1
ON dbo.T_Stations
FOR INSERT
AS
begin
insert into T_ClearAlarm(StID) select StID from inserted
end
GO
chuzhongbiyewenhua 2010-12-30
  • 打赏
  • 举报
回复
CREATE TRIGGER trigger1
ON dbo.T_Stations
FOR INSERT
AS
begin
if @@rownumber>0
begin
insert into T_ClearAlarm(StID) select StID from inserted
end
end
GO
chuzhongbiyewenhua 2010-12-30
  • 打赏
  • 举报
回复
@@rownumber
提示必须声明变量,怎么弄?
昵称被占用了 2010-12-30
  • 打赏
  • 举报
回复
CREATE TRIGGER triggerInsertClearAlarm
ON dbo.T_Stations
FOR INSERTAS
INSERT INTO T_ClearAlarm
(StID, Type)
select StID, Type from inserted

go
昵称被占用了 2010-12-30
  • 打赏
  • 举报
回复
和6楼
昵称被占用了 2010-12-30
  • 打赏
  • 举报
回复
看2楼
chuzhongbiyewenhua 2010-12-30
  • 打赏
  • 举报
回复
CREATE TRIGGER triggerInsertClearAlarm
ON dbo.T_Stations
FOR INSERTAS
INSERT INTO T_ClearAlarm
(StID, Type)
VALUES (select StID from inserted,0)


这样写有问题么?
chuzhongbiyewenhua 2010-12-30
  • 打赏
  • 举报
回复
是要插入一条,不是触发去插入全部啊
dawugui 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 chuzhongbiyewenhua 的回复:]
如何创建触发器,一个表中添加了一条信息,该信息有个编号,另外一张表也就也插于一条信息.
[/Quote]
create trigger my_trig on tb1 for insert
as
begin
insert into b2(编号) select 编号 from inserted
--or
insert into b2 select * from inserted
end
chuzhongbiyewenhua 2010-12-30
  • 打赏
  • 举报
回复
问题描述有问题,重新说明下,是A表插入了一条信息,其中有个编号,B表与A表不一样,但也插入一条A表编号的信息,
飘零一叶 2010-12-30
  • 打赏
  • 举报
回复
create trigger tri_name on table tb
for insert
as
begin
if @@rowcount>0
begin
insert into ta
select * from inserted
end
end
billpu 2010-12-30
  • 打赏
  • 举报
回复
CREATE TABLE tb1 (id INT)
CREATE TABLE tb2 (id INT)
CREATE TRIGGER t1 ON tb1
FOR INSERT
AS
INSERT tb2 SELECT * FROM inserted
GO
INSERT tb1 SELECT 1
SELECT * FROM tb2
/*
id
-----------
1
*/
gw6328 2010-12-30
  • 打赏
  • 举报
回复

CREATE TRIGGER tgr_test ON tmp_A
FOR INSERT
AS
BEGIN
INSERT INTO tmp_B ([xxx]) SELECT [xxx] FROM INSERTED
END

GO
飘零一叶 2010-12-30
  • 打赏
  • 举报
回复
create trigger tri_name on table tb
for insert
as
begin
if @@rownumber>0
begin
insert into ta
select * from inserted
end
end

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧