Sql server 2008 r2 SQL Server 2008 R2:合并查询

Sql server 2008 r2 SQL Server 2008 R2:合并查询,sql-server-2008-r2,sql-merge,Sql Server 2008 R2,Sql 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

我正在使用以下语法进行
合并

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,它可以正常工作,因此我假设我必须以其他方式编写一个名称中带有空格的列


关于正确语法有什么建议吗?

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

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

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

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

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

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

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

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

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

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

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

有关更多信息,请参阅中的分隔标识符部分。

哦,谢谢,我是按照[Target.Form Number]:)的方式来做的。@confusedMind使用双引号也应该可以(如果内存足够的话,这是ANSI标准所使用的,但根据我的经验,括号似乎是T-SQL开发人员的默认值)。哦,谢谢,我是这样做的[Target.Form Number]:)。@confusedMind使用双引号应该也能工作(如果内存足够的话,这是ANSI标准使用的,但根据我的经验,括号似乎是T-SQL开发人员的默认值)。哦,谢谢,我是这样做的[Target.Form Number]:)。@confusedMind使用双引号应该也能工作(如果我没有记错的话,这就是ANSI标准所使用的,但根据我的经验,括号似乎是T-SQL开发人员的默认设置)。哦,谢谢你,我这样做就像[Target.Form Number]:)。@confusedMind使用双引号也应该行得通(这是ANSI标准使用的,如果内存对我来说是正确的,但根据我的经验,括号似乎是T-SQL开发人员的默认设置)。