举个例子吧,下面这个例子是插入A表的数据,如果customer_id='0001',我就把该条数据另外插入到另外B表中.你可以根据自己的需求修改条件即下面脚本触发器游标中间处理部分。USE TEST GO CREATE TABLE dbo.A ( tran_no char(5) null, part_id char(4) null, quantity int null, unit_price decimal(10,2) null, customer_id char(4) null ) CREATE TABLE dbo.B ( tran_no char(5) null, part_id char(4) null, quantity int null, unit_price decimal(10,2) null, customer_id char(4) null, editdate datetime null )GO CREATE TRIGGER INSERT_A ON DBO.A AFTER INSERT AS DECLARE @inserted_tran_no CHAR(5),@inserted_part_id CHAR(4) DECLARE @inserted_quantity INT DECLARE @inserted_unit_price DECIMAL(10,2) DECLARE @inserted_customerid CHAR(4)DECLARE my_cursor CURSOR LOCAL STATIC FORWARD_ONLY READ_ONLY FOR SELECT inserted.tran_no,inserted.part_id,inserted.quantity,inserted.unit_price,inserted.customer_id FROM insertedOPEN my_cursor FETCH NEXT FROM my_cursor INTO @inserted_tran_no,@inserted_part_id,@inserted_quantity,@inserted_unit_price,@inserted_customerid WHILE @@fetch_status = 0 BEGIN IF @inserted_customerid = '0001' BEGIN INSERT INTO dbo.B(tran_no,part_id,quantity,unit_price,customer_id,editdate) SELECT @inserted_tran_no, @inserted_part_id,@inserted_quantity,@inserted_unit_price,@inserted_customerid,getdate() END FETCH NEXT FROM my_cursor INTO @inserted_tran_no,@inserted_part_id,@inserted_quantity,@inserted_unit_price,@inserted_customerid END CLOSE my_cursor DEALLOCATE my_cursorGO INSERT INTO dbo.A SELECT '00001','0001',20,12.3,'0000' UNION ALL SELECT '00001','0001',20,12.3,'0001' UNION ALL SELECT '00001','0001',20,12.3,'0002' UNION ALL SELECT '00002','0001',20,12.3,'0001' UNION ALL SELECT '00005','0001',20,12.3,'0001' UNION ALL SELECT '00005','0001',20,12.3,'0003' GO SELECT * FROM DBO.A SELECT * FROM DBO.B
http://bbs.csdn.net/topics/390887609?page=1#post-398198791触发器的请看我的博文
http://blog.csdn.net/dotnetstudio/article/details/10396439
GO
CREATE TABLE dbo.A
(
tran_no char(5) null,
part_id char(4) null,
quantity int null,
unit_price decimal(10,2) null,
customer_id char(4) null
)
CREATE TABLE dbo.B
(
tran_no char(5) null,
part_id char(4) null,
quantity int null,
unit_price decimal(10,2) null,
customer_id char(4) null,
editdate datetime null
)GO
CREATE TRIGGER INSERT_A
ON DBO.A
AFTER INSERT
AS
DECLARE @inserted_tran_no CHAR(5),@inserted_part_id CHAR(4)
DECLARE @inserted_quantity INT
DECLARE @inserted_unit_price DECIMAL(10,2)
DECLARE @inserted_customerid CHAR(4)DECLARE my_cursor CURSOR
LOCAL
STATIC
FORWARD_ONLY
READ_ONLY
FOR SELECT inserted.tran_no,inserted.part_id,inserted.quantity,inserted.unit_price,inserted.customer_id
FROM insertedOPEN my_cursor
FETCH NEXT FROM my_cursor INTO @inserted_tran_no,@inserted_part_id,@inserted_quantity,@inserted_unit_price,@inserted_customerid
WHILE @@fetch_status = 0
BEGIN
IF @inserted_customerid = '0001'
BEGIN
INSERT INTO dbo.B(tran_no,part_id,quantity,unit_price,customer_id,editdate)
SELECT @inserted_tran_no, @inserted_part_id,@inserted_quantity,@inserted_unit_price,@inserted_customerid,getdate()
END
FETCH NEXT FROM my_cursor INTO @inserted_tran_no,@inserted_part_id,@inserted_quantity,@inserted_unit_price,@inserted_customerid
END
CLOSE my_cursor
DEALLOCATE my_cursorGO
INSERT INTO dbo.A
SELECT '00001','0001',20,12.3,'0000'
UNION ALL
SELECT '00001','0001',20,12.3,'0001'
UNION ALL
SELECT '00001','0001',20,12.3,'0002'
UNION ALL
SELECT '00002','0001',20,12.3,'0001'
UNION ALL
SELECT '00005','0001',20,12.3,'0001'
UNION ALL
SELECT '00005','0001',20,12.3,'0003'
GO
SELECT * FROM DBO.A
SELECT * FROM DBO.B