使用子查询的UPSERT语法

2020-08-27 23:14发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,我似乎无法弄清楚这一点,因此也许有人遇到了同样的问题。 我猜这是一个语法问题。

UPSERT在处理单行时可以正常工作,但是我无法在子查询中使用它。

工作得很好

UPSERT

(列1,COLUMN2)具有主键的值('VALUE1','VALUE2');

" PRIMARY"附近的语法错误

UPSERT

(PRINARY KEY)的值(COLUMN1,COLUMN2)(从表2选择SELECT COLUMN1,COLUMN2);

用另一种方法尝试了另一种方法

UPSERT

(COLUMN1,COLUMN2)(SELECT COLUMN1 ,来自TABLE2的COLUMN2);带有主键;

我之前在INSERT上成功使用了此功能,但我认为UPSERT是一种稍有不同的动物。

此致

Justin

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,我似乎无法弄清楚这一点,因此也许有人遇到了同样的问题。 我猜这是一个语法问题。

UPSERT在处理单行时可以正常工作,但是我无法在子查询中使用它。

工作得很好

UPSERT

(列1,COLUMN2)具有主键的值('VALUE1','VALUE2');

" PRIMARY"附近的语法错误

UPSERT

(PRINARY KEY)的值(COLUMN1,COLUMN2)(从表2选择SELECT COLUMN1,COLUMN2);

用另一种方法尝试了另一种方法

UPSERT

(COLUMN1,COLUMN2)(SELECT COLUMN1 ,来自TABLE2的COLUMN2);带有主键;

我之前在INSERT上成功使用了此功能,但我认为UPSERT是一种稍有不同的动物。

此致

Justin

付费偷看设置
发送
2条回答
SAP小黑
1楼 · 2020-08-27 23:35.采纳回答

贾斯汀,您好

首先,您可以在此处找到语法。 替换| UPSERT-SAP HANA SQL和系统视图参考-SAP库

>具有主键的UPSERT

(COLUMN1,COLUMN2)值('VALUE1','VALUE2');

是正确的。


>具有主键的UPSERT

(COLUMN1,COLUMN2)值(从表2中选择COLUMN1,COLUMN2);

不正确。 应该是UPSERT

(COLUMN1,COLUMN2)从TABLE2选择SELECT COLUMN1,COLUMN2;


> UPSERT

(COLUMN1,COLUMN2)(SELECT COLUMN1,COLUMN2 来自表2)带有主键;

这是不正确的。 应该是UPSERT

(COLUMN1,COLUMN2),从TABLE2中选择SELECT COLUMN1,COLUMN2; 确定您的意思是什么。

如果您真的觉得需要重新讨论此旧讨论,请提供一些背景信息。

使用UPSERT命令对您不起作用吗?

您期望它做什么?

是不是您真的不了解Wenjun示例中违反唯一约束的原因是什么?

它是绝对正确的,并且按预期工作。

浮生未央
2楼-- · 2020-08-27 23:40

实际上,有一种更好的Upsert方法。 尝试MERGE语句。 它执行相同的Update或Insert,并且易于编码。

https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.02/zh-CN/3226201f95764a57810dd256c9524d56.html?q=MERGE

一周热门 更多>

向帮助了您的网友说句感谢的话吧!