I am trying to use merge to combine an update and insert statement, although i am getting some error and im not quite sure its right. The merge statement is within a stored proc. Following is the merge statement.
MERGE dbo.seg AS TARGET
USING (SELECT segCreateDate
, segDesc
, modifiedDate
, modifiedBy
FROM [update].[dbo].[seg] s
) AS source (segCreateDate
, segDesc
, modifiedDate
, modifiedBy)
ON (dbo.[seg].segID = s.segID
AND (
dbo.[seg].segCreateDate > s.segCreateDate
OR dbo.[seg].segDesc <> s.segDesc
)
)
WHEN MATCHED THEN
UPDATE dbo.seg SET
target.segCreateDate = source.segCreateDate
AND target.segDesc = source.segDesc
AND target.modifiedDate = source.modifiedDate
AND target.modifiedBy = source.modifiedBy
WHEN NOT MATCHED THEN
INSERT (segID
, segCode
, segDesc
, segCreateDate
, createdDate
, createdBy
, modifiedDate
, modifiedBy
)
VALUES (SELECT segID
,segCode
,segDesc
,segCreateDate
,createdDate
,createdBy
,modifiedDate
,modifiedBy
FROM [update].[dbo].[seg]);
Its the first time i am using merge so hope can get some help.
Thanks all