我有一個名爲Table1的表,其中有兩個字段Systemname和Updatecount。 帶有Systemname「SAP」的每個插入應該將Updatecount設置爲1(初始值)。 如果字段系統名稱使用定義值「SAP」獲取更新,則字段更新計數應該增加1.更新插入MSSql觸發器(Updatecounter)
如何定義觸發器?
我有一個名爲Table1的表,其中有兩個字段Systemname和Updatecount。 帶有Systemname「SAP」的每個插入應該將Updatecount設置爲1(初始值)。 如果字段系統名稱使用定義值「SAP」獲取更新,則字段更新計數應該增加1.更新插入MSSql觸發器(Updatecounter)
如何定義觸發器?
create trigger tr on Table1 for insert,update
as
begin
if update(Systemname)
update Table1
set UpdateCount = (case when not exists(select * from deleted) then 1 else UpdateCount + 1 end)
from Table1
inner join inserted on Table1.[<YourPKField>] = inserted.[<YourPKField>]
where inserted.Systemname = 'SAP'
end
GO
有上觸發一個很好的文章在這裏:
http://www.codeproject.com/Articles/38808/Overview-of-SQL-Server-database-Triggers
您需要創建:
CREATE TRIGGER [TRIGGER_ALTER_COUNT] ON [dbo].[tblTriggerExample]
FOR INSERT, UPDATE
AS
BEGIN
DECLARE @Var INT
SELECT @Var = COUNT(*) FROM INSERTED
UPDATE [dbo].[tblTriggerExample] SET AlterCount = AlterCount + Var
,LastUpdate = GETDATE()
WHERE TransactionID = @TransID
SELECT @Var = COUNT(*) FROM UPDATED WHERE SystemNAme = 'Var'
UPDATE [dbo].[tblTriggerExample] SET AlterCount = AlterCount + @Var
,LastUpdate = GETDATE()
WHERE TransactionID = @TransID
END
感謝您鏈接的文章。 – callisto 2015-01-22 06:55:56