在SQL Server觸發器中如何判斷哪些列被更改

2022-08-16 02:03:09 字數 596 閱讀 4442

在觸發器中判斷哪些列被更改有以下兩種方法:

第一、可以使用update()函式 ,語法:update(列名);返回值:bool值。如果該列被更新則為true,否則為false。該函式比較方便也比較實用。

第二、使用columns_updated()函式。 語法:columns_updated();返回值:varbinary

1.八列以內的表。可以直接使用 columns_updated()函式來判斷。比如:要測試一下第一列有沒有被修改,則可以用columns_updated()& 1=1來判斷。                                     如果為true,則該列被更新;否則未被更新。要測試第五列,則可用 columns_updated()& 16=16來判斷。

2.八列以上的表。要測試第一列被更新用 substring

(columns_updated(),

1,1)

& 1=1,如果測試第11列,則用 substring

(columns_updated(),

2,1)

& 4=4。以此類推。

sql server中觸發器

觸發器是一種特殊型別的儲存過程,它不同於之前的我們介紹的儲存過程。觸發器主要是通過事件進行觸發被自動呼叫執行的。而儲存過程可以通過儲存過程的名稱被呼叫。什麼是觸發器 觸發器對錶進行插入 更新 刪除的時候會自動執行的特殊儲存過程。觸發器一般用在check約束更加複雜的約束上面。觸發器和普通的儲存過程的...

SQL Server中的觸發器

去年接觸觸發器的時候一頭霧水,現在也算有了個大概的了解。就像的自考一樣,學習真的是乙個需要反覆的過程,從陌生到熟悉這是乙個過程。一 基本概念 觸發器是一種特殊型別的儲存過程,它不同於普通的儲存過程。觸發器主要是通過事件進行觸發而被執行的,而儲存過程可以通過儲存過程名稱而被直接呼叫。當往某乙個 中插入...

sqlserver觸發器複習

create table a a1 int,a2 int create table b b1 int,b2 int insert into a values 1,0 insert into b values 1,0 create trigger tri update a2 a on a for up...