我只是測試用下面的代碼:
create table bi_test_tr (
filed1 int,
filed2 int,
filed3 int
)
GO
create table test (
datechange datetime,
sum1 int,
sum2 int,
sum3 int
)
GO
CREATE TRIGGER test_tr
ON bi_test_tr
AFTER INSERT, UPDATE, DELETE
AS
BEGIN
INSERT INTO test (datechange, sum1, sum2, sum3)
SELECT
GETDATE(), SUM([filed1]), SUM([filed2]), SUM([filed3])
FROM bi_test_tr
END
GO
insert into bi_test_tr values (1,1,1);
insert into bi_test_tr values (2,2,2);
insert into bi_test_tr values (3,3,3);
insert into bi_test_tr values (4,4,4);
insert into bi_test_tr values (5,5,5);
select * from test
,並得到了預期的結果:
2016-05-12 12:03:09.253 1 1 1
2016-05-12 12:03:09.287 3 3 3
2016-05-12 12:03:09.307 6 6 6
2016-05-12 12:03:09.307 10 10 10
2016-05-12 12:03:09.310 15 15 15
除非我失去了一些東西?
任何無法引用[插入或刪除](https://msdn.microsoft.com/zh-CN/library/ms191300.aspx)的SQL Server觸發器都會引發警告鈴聲 - 您不是,在您的觸發器,使任何有關*表中哪些*行的信息被改變。 –
這很奇怪,因爲Radu的代碼工作.... – 4est
什麼也很奇怪:當我從觸發器運行代碼,它運行完美:/ – 4est