我在表上使用Insert
触发器,将一条记录从一个表复制到另一个表。
一切都好。它在datetime
列之外工作正常。当我在插入的值中添加datetime
列时,我收到错误:
列名无效
我的代码是
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 :(得分:0)
正如错误文本所示,您正在引用一个不存在的列。
在MERGE语句的SELECT部分中,没有名为FirstVisitDate的输出列,这就是您收到错误的原因......