我有一個更新觸發器,用於在另一個表中更新記錄時更新空記錄。我的問題是,數據是在gridview中,當你更新時,它會在網格中的所有記錄上運行更新查詢,而不僅僅是更新後的記錄。所以當觸發器觸發時,它會更新目標表中匹配的每一行,但我只想更新數據已更改的那一行。這是我的觸發器。更新如果數據已更改,則僅觸發更新
ALTER TRIGGER [dbo].[Trigger_update_DeSchedule] ON [dbo].[tBatchDetails]
After UPDATE ,INSERT
AS
BEGIN
SET NOCOUNT ON
DECLARE @BatchId int
, @Ethanol varchar(10)
, @Glucose varchar(10)
, @SampleAge varchar(10);
SELECT @BatchId = B.[BatchID]
,@Ethanol = [Ethanol]
,@Glucose= [Glucose]
,@SampleAge = SA.SampleAge
from INSERTED bd
INNER JOIN [dbo].[tSampleAge] sa ON SA.SampleAgeID = BD.SampleAge
INNER JOIN [dbo].[tBatch] b ON B.ID =BD.ID
UPDATE [dbo].[DeSchedule]
SET [Ethanol] = @Ethanol
, [Glucose] = @Glucose
, [SampleCompleted] = 1
WHERE [BatchID] = @BatchId
AND [SampleAge] = @SampleAge
AND SiteID = 6
AND SampleCompleted IS NULL
END
如何在此觸發器中只更新數據已更改的記錄?
[**嘗試具有一下觸發器**代替-的](https://technet.microsoft.com/en-us/library/ms175521(V = SQL.105)的.aspx) –