SQL Server 2008 - 合并脚本不起作用

Posted

技术标签:

【中文标题】SQL Server 2008 - 合并脚本不起作用【英文标题】:SQL Server 2008 - Merge Script not working 【发布时间】:2011-01-27 20:29:49 【问题描述】:

我正在编写的这个合并脚本没有编译,我相信我的语法是正确的。

MERGE into MyTable ct_current
USING (SELECT '0%' as Description, '0' as ShareAmount) ct_value
    ON ct_current.ShareAmount = ct_value.ShareAmount
WHEN MATCHED THEN 
    UPDATE SET ct_current.Description = '0%'
WHEN NOT MATCHED THEN
    INSERT (Description, ShareAmount)
    VALUES (ct_value.Description, ct_value.ShareAmount);
GO

错误:

消息 156,级别 15,状态 1,行 1 关键字“into”附近的语法不正确。 消息 102,第 15 级,状态 1,第 2 行 'ct_value' 附近的语法不正确。

【问题讨论】:

【参考方案1】:

试试

MERGE MyTable AS ct_current
USING (SELECT '0%' as Description, '0' as ShareAmount) ct_value
  ON ct_current.ShareAmount = ct_value.ShareAmount
WHEN MATCHED THEN 
  UPDATE SET ct_current.Description = '0%'
WHEN NOT MATCHED THEN
  INSERT (Description, ShareAmount)
  VALUES (ct_value.Description, ct_value.ShareAmount);

【讨论】:

【参考方案2】:

我意识到我有 SQL Server 2008 R2 客户端,但服务器是 SQL Server 2005。

【讨论】:

以上是关于SQL Server 2008 - 合并脚本不起作用的主要内容,如果未能解决你的问题,请参考以下文章

将 php 连接到 MS SQL Server 2008

SQL Server 2008 将两个表合并为一个但得到重复的行

合并列并获取计数 SQL Server 2008

SQL Server 2008 - CAST 到 nvarchar 不起作用

在 SQL Server 2008 中将两个表合并到一个索引视图中

SQL Server 2008 varchar 和 char 不起作用