批量插入数据 如何执行触发器 请高手帮忙???

Reasoncool 2006-09-27 06:03:57
向目的表中一次性插入大量数据,可是触发器只对一行数据有效。

要对每一行插入数据都进行触发 请问如何实现。

除了 用游标
...全文
354 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2006-09-27
  • 打赏
  • 举报
回复
还是改触发器, 让它适应一次处理多行的情况吧.

sql 不支持行级触发器.
MuCloudLi 2006-09-27
  • 打赏
  • 举报
回复
在触发器里遍历inserted表里的所有记录,做相应的操作~~~
OracleRoob 2006-09-27
  • 打赏
  • 举报
回复

create table t1 (id int)
create table t2 (id int )
go

create trigger tr_test on dbo.t1
for insert
as
insert into t2(id) select id from inserted
go


--示例,批量追加到T1,触发器自动追加到T2

insert into t1(id)
select 1 union all
select 2 union all
select 3


select * from t1

select * from t2


drop trigger dbo.tr_test
drop table dbo.t1
drop table dbo.t2
go
OracleRoob 2006-09-27
  • 打赏
  • 举报
回复

CREATE TABLE [dbo].[T1] (
[id] [int] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[T2] (
[id] [int] NULL
) ON [PRIMARY]
GO


CREATE TRIGGER tr_test ON [dbo].[T1]
FOR INSERT
AS

INSERT INTO T2(ID) SELECT ID FROM INSERTED

GO

--示例

insert into T1(id)
select 1 union all
select 2


select * from T1

select * from T2


drop trigger [dbo].[tr_test]
drop table [dbo].[T1]
drop table [dbo].[T2]
GO
OracleRoob 2006-09-27
  • 打赏
  • 举报
回复
直接从inserted表追加到你的其它表即可。

22,209

社区成员

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

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