create trigger Test on tableA for insert as insert tableB(field1,field2,...) values(Inserted.field1,Inserted.field2,...) ========================== 关键在于Inserted表,你要插入的记录都存在它里面。
把你的数据库脚本贴出来,可以一步到位 实际就是inserted 表你不知道 CREATE TRIGGER tg_test ON [dbo].[tel_record] FOR INSERT ASinsert into b.table1(field1,field2) values (inserted.filed1,inserted.field2)
在Mssql7中,下面的语句通过测试。CREATE TABLE [dbo].[test1] ( [id] [int] NULL , [name] [char] (10) NULL ) ON [PRIMARY] GOCREATE TABLE [dbo].[test2] ( [id] [int] NULL , [name] [char] (10) NULL , [re] [varchar] (50) NULL ) ON [PRIMARY] GOSET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GOCREATE TRIGGER tr_test ON [dbo].[test1] FOR INSERT AS insert into test2 (id,name) select id,name from inserted GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO insert into test1 values(1,'test')select * from test2
insert tableB(field1,field2,...) values(Inserted.field1,Inserted.field2,...)
==========================
关键在于Inserted表,你要插入的记录都存在它里面。
实际就是inserted 表你不知道
CREATE TRIGGER tg_test ON [dbo].[tel_record]
FOR INSERT
ASinsert into b.table1(field1,field2)
values (inserted.filed1,inserted.field2)
Inserted 表是当插入记录时SQL自动生成的!!
你不觉得翻页很麻烦码?
"field" is not permitted
[id] [int] NULL ,
[name] [char] (10) NULL
) ON [PRIMARY]
GOCREATE TABLE [dbo].[test2] (
[id] [int] NULL ,
[name] [char] (10) NULL ,
[re] [varchar] (50) NULL
) ON [PRIMARY]
GOSET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GOCREATE TRIGGER tr_test ON [dbo].[test1]
FOR INSERT
AS
insert into test2 (id,name)
select id,name from inserted
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
insert into test1 values(1,'test')select * from test2
OK,问题解决,太感谢了!
上来拿分!