SQL Server Merge mandate Does the target table need to be identical to source table schematically? Specifically: 1) do they need to have the same number of columns and do the column types must be the same?, 2) do the column NAMES need to be the same also? 

General MERGE syntax is as follows: 

MERGE INTO &lt;target table&gt; AS TGT
USING &lt;SOURCE TABLE&gt; AS SRC
 ON &lt;merge predicate&gt;
WHEN MATCHED [AND &lt;predicate&gt;]
 THEN &lt;action&gt; -- one with UPDATE one with DELETE
WHEN NOT MATCHED [BY TARGET] [AND &lt;predicate&gt;] 
 THEN INSERT... –- if indicated, action must be INSERT
WHEN NOT MATCHED BY SOURCE [AND &lt;predicate&gt;] 
 THEN &lt;action&gt;; -- one with UPDATE one with DELETE
No, they don't need to have the same name/number/type of columns (although for the columns you are comparing on in the "join" i.e. the on-predicate, they need to be compatible to compare).

The MERGE statement created according to your example syntax will specify which fields to match on (merge predicate), or insert/update/delete by. If you want to match on CustomerName = Customer, or insert a OrderDate into the Date field, that would be fine.

Think of it as if you are doing an INSERT based on a join, and an UPDATE based on a join, within the single statement. Some people refer to this process as an "upsert"!