SQL Server 觸發器中 Update的方法 判斷一列是否更新

來源:互聯網
上載者:User

Every one know `s that : 觸發器中我可能會因為某一個欄位的值被修改了,我才會觸發這個Trigger,ok,我們會寫   if  Update(Column1) 這樣的語句,ok,沒問題,但你要清楚,這個判斷是基於你的SQL 陳述式,也就是說,你資料庫裡Column1的值 是 A ,你用一條SQL 把這個Column1 還是Update 成 A,那麼這個if  Update(Column1)  依然成立,我反覆實驗發現,if  Update(Column1)  並不能判斷 你的 Inserted
和 Updated 中的 Column1 是否一樣,只是會判斷,你這條Update 語句中是否有  Set Column1='X' ,有則成立,沒有則返回 False 。

So 你要是想判斷這個Update 中 是否是把原來的值改掉,那麼你就應該使用這樣的判斷來

if((select count(*) from inserted a inner join deleted b on a.主鍵 = b.主鍵  and a.column1 = b.column1)>0)

做這樣的判斷,就會保證你的值 只有改變了,才會 Return true

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.