2010-10-11 59 views
1

是否可以創建特定單元格明智觸發器?SQL單元格明智觸發器

還是

IF UPDATE(COLUMN) WHERE OTHER_COLUMN LIKE 'JT' 

出現在SQL Server 2008中的相同呢?

編輯獲得第2個答案後---

IF not UPDATE(CurrentNo) --// Wanted to do like this : where series ='JT' 
    return 

IF not EXISTS(SELECT 'True' 
       FROM Inserted i 
       JOIN Deleted d ON i.Series = d.Series 
       WHERE i.Series = 'JT' AND d.Series = 'JT') 
    return 

似乎確定正確的!請給出意見。

回答

1

不,沒有辦法做到這一點的聲明。您需要創建一個一般的更新觸發,並把邏輯它立即返回IF NOT UPDATE (column)

如果感興趣柱子然後更新您將查詢inserteddeleted僞表,讓您可以處理行,其中的條件的興趣得到滿足。

+0

所以,基本上你說這是可能的。 – Unreason 2010-10-11 09:49:12

+0

@Unreason - 種類。但是,只有在滿足特定條件時才能觸發觸發器。 – 2010-10-11 09:51:16

+0

嗨,我可以在更新之前創建#hashtemp表並在更新後使用它?以便更新前和更新後的單元格值相匹配,然後觸發器進行其他明智的返回或退出。如果有人已經做到了? – Rick2047 2010-10-11 09:58:28

0

Tiggers在表格上指定,而不是在行,列或單元格上指定。觸發器的內部可以訪問INSERTED和DELETED表。您可以將它們結合在一起,以確定在更新期間更改了哪些列。 SQL Server 2008(以及之前的版本)中提供的UPDATE()函數是確定列是否發生更改的簡寫方法。