2014-09-03 46 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的输出列,这就是为什么您会收到错误...