我打算用Visual Studio编写merge
语句,但出现错误
输出附近语法不正确
我该如何解决?
我试图在`sqlCommando对象中编写SQL查询,但出现错误。
MERGE INTO dbo.EMPLOYEE as t
USING dbo.CT_EMPLOYEES as s t.EMPLOYEE_ID = s.EMPLOYEE_ID
WHEN MATCHED THEN
UPDATE SET t.EMAIL = s.EMAIL,
t.GID = s.GID,
t.SAP_COMPANY_CODE = s.SAP_COMPANY_CODE ,
t.FIRST_NAME = s.FIRST_NAME ,
t.LAST_NAME = s.LAST_NAME ,
t.COST_CENTER = s.COST_CENTER,
t.MANAGER_EMPLOYEE_ID =s.MANAGER_EMPLOYEE_ID,
t.SCD_DEPT=s.SCD_DEPT,
t.LEAVE_DATE = s.LEAVE_DATE,
t.START_DATE = s.START_DATE ,
t.CONTRACT_TYPE = s.CONTRACT_TYPE ,
t.WEEKLY_WORKING__HOUR = s.WEEKLY_WORKING__HOUR ,
t.STATUS=s.STATUS,
t.LAST_UPDATE_TIME = s.LAST_UPDATE_TIME
WHEN NOT MATCHED BY TARGET THEN
INSERT(EMPLOYEE_ID, EMAIL, GID, SAP_COMPANY_CODE, FIRST_NAME, LAST_NAME, COST_CENTER, MANAGER_EMPLOYEE_ID, SCD_DEPT, LEAVE_DATE, START_DATE, CONTRACT_TYPE, WEEKLY_WORKING__HOUR, STATUS, LAST_UPDATE_TIME)
VALUES(s.EMPLOYEE_ID, s.EMAIL, s.GID, s.SAP_COMPANY_CODE, s.FIRST_NAME, s.LAST_NAME, s.COST_CENTER, s.MANAGER_EMPLOYEE_ID, s.SCD_DEPT, s.LEAVE_DATE, s.START_DATE, s.CONTRACT_TYPE, s.WEEKLY_WORKING__HOUR, s.STATUS, s.LAST_UPDATE_TIME)
OUTPUT $action as Work, inserted.EMPLOYEE_ID, inserted.EMAIL, inserted.GID, inserted.SAP_COMPANY_CODE, inserted.FIRST_NAME, inserted.LAST_NAME, inserted.COST_CENTER, inserted.MANAGER_EMPLOYEE_ID, inserted.SCD_DEPT, inserted.LEAVE_DATE, inserted.START_DATE, inserted.CONTRACT_TYPE, inserted.WEEKLY_WORKING__HOUR,inserted.STATUS,inserted.LAST_UPDATE_TIME;
我收到有关的错误
输出附近语法不正确
如何解决?
您缺少合并谓词中的ON
。代替
MERGE INTO dbo.EMPLOYEE as t
USING dbo.CT_EMPLOYEES as s t.EMPLOYEE_ID = s.EMPLOYEE_ID
WHEN MATCHED THEN
....
应该是
MERGE INTO dbo.EMPLOYEE as t
USING dbo.CT_EMPLOYEES as s ON t.EMPLOYEE_ID = s.EMPLOYEE_ID
WHEN MATCHED THEN