在我们的应用程序在数据库级别,我有一个表架构计费和Billing_History中的分期付款。SQL插入/更新/删除触发效率
显示的触发器位于账单模式的分期付款表中。
这样做是每次在计费架构中插入/更新记录时,它也会写入历史记录文件中。
如果记录从记帐表中被删除,它将被写入历史记录表,其中“已删除”指示符= true。
我认为,“如果不存在(从安装选择*)被杀死了我的表现,更多的记录得到补充。
有没有更effecient是写这个触发器?
Create TRIGGER [Billing].[Installments_InsertDeleteUpdate_History]
ON [Billing].[Installments]
AFTER INSERT, DELETE, UPDATE
AS BEGIN
Insert Into Billing_History.Installments
Select *, GetDate(), 0 From Inserted
If Not Exists (Select * From Inserted)
Insert Into Billing_History.Installments
Select *, GetDate(), 1 From Deleted
SET NOCOUNT ON;
-- Insert statements for trigger here
END
建议您为正在使用的RDBMS添加标签。 – Smandoli
'如果不存在(选择*从插入)'不会损害您的性能,但您可以用'IF @@ ROWCOUNT> 0'检查替换它以获得相同的语义。 –
在插入中选择*是非常糟糕的做法。 – HLGEM