如何在SAP HANA DB中创建INSTEAD OF TRIGGER(我需要语法)

2020-08-31 17:41发布

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

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


 我正在使用此SYNATX创建触发器
 创建触发器tgBook
 在"系统"。"书"上进行插入
 每行
 开始
 插入" SYSTEM"。" CLASSA"(卷号,名称,百分比)
 选择卷编号,名称,百分比
 从插入
 插入" SYSTEM"。" ClassB"(英语,数学)
 选择英语,数学
 从插入
 结束

 我收到此错误:


 无法执行"在"系统"上创建触发器tgBook代替插入。为每个行开始插入到...中的"预订" ..."
 SAP DBTech JDBC:[257]:sql语法错误:" INTO"附近的语法不正确:第8行第8行(在pos 197)


 

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

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


 我正在使用此SYNATX创建触发器
 创建触发器tgBook
 在"系统"。"书"上进行插入
 每行
 开始
 插入" SYSTEM"。" CLASSA"(卷号,名称,百分比)
 选择卷编号,名称,百分比
 从插入
 插入" SYSTEM"。" ClassB"(英语,数学)
 选择英语,数学
 从插入
 结束

 我收到此错误:


 无法执行"在"系统"上创建触发器tgBook代替插入。为每个行开始插入到...中的"预订" ..."
 SAP DBTech JDBC:[257]:sql语法错误:" INTO"附近的语法不正确:第8行第8行(在pos 197)


 
付费偷看设置
发送
3条回答
Tong__Ming
1楼 · 2020-08-31 18:12.采纳回答

官方帮助已经可以回答 你的问题。 其中提到了这样的内容:

  • ...
  • INSTEAD OF触发器仅允许用于SQL视图,而不能用于表或列视图。
  • FOR EACH子句不支持此选项。
  • ...

在您的情况下,我认为您正在使用表,并且尝试使用都不支持的" for each"子句。

此外,在编码中尚不清楚 变量" INSERTED"来自何处(因为也许因为每行都有,它以某种方式神奇地存在于那儿?),因此您缺少了关闭语句所必需的分号。

您的" SYSTEM"。" BOOK"表是一个视图,其语法应如下所示(假设工作簿视图具有要求的列)-顺便说一句; 在SYSTEM模式中创建自己的东西不是一种好方法:

创建触发器tgBook
 在"系统"。"书"上进行插入
 参考新行newRow
 开始
   插入" SYSTEM"。" CLASSA"(rollNo,名称,百分比)值(:newRow.rollNo,:newRow.name,:newRow.percentage;

   插入" SYSTEM"。" ClassB"(英语,数学)值(:newRow.english,:newRow.maths);
 END; 
hongfeng1314
2楼-- · 2020-08-31 18:24

为什么我们不能在列视图上创建触发器

软件心理学工程师
3楼-- · 2020-08-31 18:07

感谢其工作

一周热门 更多>