2014-09-03 114 views
1

我在表格中使用Insert觸發器,我將一個記錄從一個表複製到另一個表。datetime列觸發器問題

一切都很好。它工作正常,除了datetime列。當我添加一個datetime列到插入的值,然後我得到一個錯誤:

Invalid column name

我的代碼是

ALTER TRIGGER [dbo].[Insert_MoinitoringBasic] 
ON [dbo].[M0_BasicInfo] 
FOR INSERT 
AS 
BEGIN 
    MERGE [MonitoringROSCII].[dbo].[MonitorBasicInfo] AS d 
    USING (SELECT DistrictID, upazilaID, LC_ID, AcademicYear, Trimester, RepID, 
        CASE VisitType 
        WHEN 'Initial validation' THEN 1 
        WHEN 'Full validation' THEN 2 
        WHEN 'Compliance monitoring' THEN 3 
       END AS VisitTp 
      FROM INSERTED) AS s ON s.DistrictID = d.DistrictID 
           AND s.upazilaID = d.upazilaID 
           AND s.LC_ID = d.LCID 
           AND s.AcademicYear = d.LCVisitYr 
           AND s.Trimester = d.Trimister 
           AND s.RepID = d.MOID 
           AND s.VisitTp = d.VisitType 
    WHEN MATCHED THEN 
     UPDATE 
     SET DistrictID = S.DistrictID 

    WHEN NOT MATCHED THEN 
     INSERT (DistrictID, UpazilaID, LCID, VisitType, LCVisitYr, Trimister, MOID, 
LCStatus, IfCloseWhy, OthersSpecify,LC1stVstDt) 
     VALUES (DistrictID, UpazilaID, Lc_ID, VisitTp, AcademicYear, Trimester, RepId, 
       2, 'No', 'No', FirstVisitDate); 
END 

這裏的最後一行FirstVisitDate這是一個datetime列。沒有這個列,它工作的很好,但是當我包含這個列時,它顯示了上面提到的錯誤。

有人可以幫我嗎?

謝謝

回答

0

正如錯誤文本所示,您指的是不存在的列。

在您的MERGE語句的SELECT部分​​,沒有名爲FirstVisitDate的輸出列,這就是爲什麼您會收到錯誤...