日期:2014-05-18  浏览次数:20444 次

各位帮帮忙,关于触发器的问题谢谢了(我的分都给你们了只求你们回答我)
CREATE   TRIGGER   bp_InsTankCurve

on   Rpt_CaseRecord

for   insert,update

as

begin

declare   @TankID   as   int
declare   @sDate   as   varchar(10)
declare   @sTime   as   varchar(10)
declare   @OilNumCode   as   varchar(20)
declare   @OilHeigh   as   decimal   (18,1)

select  
@TankID   =   tankID,
@sDate   =   sdate,
@sTime   =   stime,
@OilNumCode   =   oilNumCode,
@OilHeigh   =   oilh
from   inserted

insert   into   [Dic_TankCurve]
(
TankID,
sDate,
sTime,
OilNumCode,
OilHeigh
)
values
(
@TankID,
@sDate,
@sTime,
@OilNumCode,
@OilHeigh
)

end


这是我写的一个触发器,我想让触发器忽略某一行的更新,说明白点就是SQL SERVER 的触发器是针对表的,怎样写一个针对字段的触发器。
请高人给写一个例子。
谢谢了


------解决方案--------------------
if update(字段)
begin
...
end
------解决方案--------------------
用IF UPDATE做判斷


IF UPDATE (column)

測試針對所指定資料行的 INSERT 或 UPDATE 動作,並且不含使用 DELETE 作業。可以指定一個以上的資料行。由於資料表名稱是在 ON 子句中指定,請勿在 IF UPDATE 子句中的資料行名稱之前加入資料表名稱。若要測試多個資料行的 INSERT 或 UPDATE 動作,請在第一個 UPDATE(column) 子句後面指定各別的 UPDATE(column) 子句。假如 UPDATE 在 INSERT 動作傳回 TRUE 值,因為資料行不是有外顯的值就是有內隱的 (NULL) 值插入。