点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我创建了一个带有" ID"列的表,它会自动创建一个序列名称" _SYS_SEQUENCE_4231595_#0_#""。
我知道,如果您从表中删除并重新加载数据,则序列不会重置。 从过程中的表中删除数据后,我试图重置序列。
1。 创建列表" ABC"(ID BIGINT主键默认生成为IDENTITY,
材料NVARCHAR(100));
2。 这样就创建了一个序列" _ SYS_SEQUENCE_4231595_#0 _#" 。
3。 从表" ABC"中删除数据。
4。 使用以下语法重新启动序列:
ALTER SEQUENCE " SCHEMA"。 " _ SYS_SEQUENCE_4231595_#0_#"从1开始; 但是它抛出了以下错误。
无法执行'ALTER SEQUENCE" _SYS_SEQUENCE_4231595_#0_#"用1重新启动SAP DBTech JDBC:[383]:无效标识符:不允许使用_sys_前缀:_SYS_SEQUENCE_4231595_#0_#:第1行第16列(在pos 15)
5。 我能够重设从流程图(生成串行密钥)选项创建的序列。
更改序列" SCHEMA"。" EQUFG"从1开始;
请任何人告诉我我所缺少的内容,并且稍后我需要在过程中使用Restart语句。
我正在使用HANA 1.0 Sp12。
谢谢
Sunil Sharma
很高兴看到我的旧内容仍然不时地被拉出来回答问题:)
很好, Abhishek Shanbhogue !
现在,关于以下问题:
一旦您选择对ID列使用IDENTIY,就将序列的控制权移交给HANA。
RESET BY子句仅在实例启动期间执行; 因此,这可能是您的选择:删除或截断表并重新启动数据库。
另一个选择是尝试通过设置支持参数来规避对系统对象的保护。 但是,这会使HANA实例的结构完整性容易受到破坏,因此我根本不建议这样做。
相反,如果您确实需要能够控制序列生成的数字 ,则不要使用全自动IDENTITY,而要使用自定义序列。
IDENTITY和SEQUENCE数字旨在以无锁方式提供无意义的数字。
如果您需要重置它们,那么我认为实际上还有一些附加含义,例如" 插入记录的顺序"或" 运行编号" 表中的记录数"。 IDENTITY或SEQUENCES不支持这些含义!
我强烈建议您检查一下有关此数字对数据意味着什么的假设,以及您是否在此处使用正确的工具进行工作。
我知道在TSQL中 此功能,但不确定是否可以在HANA中使用
看看这些博客-在其中发布的问答集
https://blogs.sap.com/2014/06/04/quick-note-on-identity-column-in-sap-hana/
https://blogs.sap .com/2017/08/04/experience-with-identity-feature-sap-hana/
https://stackoverflow.com/questions/ 38179047/sap-hana中的reset-auto-increment-field-field
谢谢
Abhishek Shanbhogue
谢谢,@ Abhishek Shanbhogue ! 您共享的最后一个链接非常有用。
我建议为此打开一个新问题,并包括导致错误消息的过程的源代码。
一周热门 更多>