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 - 合并脚本不起作用的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2008 将两个表合并为一个但得到重复的行
SQL Server 2008 - CAST 到 nvarchar 不起作用