SQL Server 2008 R2:合并查询

SQL Server 2008 R2 : Merge Query

我对 merge 使用以下语法:

MERGE INTO studentinfo as Target
USING StudentInfo_Temp as Source ON Target.Form Number = Source.Form Number

WHEN MATCHED THEN
   UPDATE 
      SET Target.Form Number = Source.Form Number

WHEN NOT MATCHED THEN
   INSERT ([Form Number], [Academic Program]) 
   VALUES (Source.Form Number, Source.Academic Program);

但是我在

行收到上面的错误
on Target.Form Number = Source.Form Number

如果我用 Taget.ID = Source.ID 替换它,它工作正常,所以我假设我必须以其他方式写一个名称为 space 的专栏。

对正确的语法有什么建议吗?

使用方括号用空格将值括起来:

Target.[Form Number] = Source.[Form Number]

有关详细信息,请参阅 documentation 中的 定界标识符 部分。