[DB] MSSQL Trigger 判別

最近剛好用Trigger,順便幫助自己記憶Trigger的用法




if exists(Select 1 From inserted) -- both update & insert

if exists(Select 1 From inserted) and exists(select 1 from deleted) -- only update

if exists(Select 1 From inserted) and not exists(select 1 from deleted) -- only insert

if exists(Select 1 From deleted) and not exists(select 1 from inserted) -- only delete


inserted指的是「insert & update」資料

deleted指的是「update & delete」資料

一般執行update時,是先delete再insert,並沒有進行insert,所以如果僅針對update時就要exists delete,這樣insert時就不會異動資料了!

留言