从表中删除数据后无法重置序列

2020-08-14 07:57发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我创建了一个带有 I...

         点击此处--->   EasySAP.com群内免费提供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

4条回答
路亽曱_Ryan
2020-08-14 08:27 .采纳回答

很高兴看到我的旧内容仍然不时地被拉出来回答问题:)

很好, Abhishek Shanbhogue

现在,关于以下问题:
一旦您选择对ID列使用IDENTIY,就将序列的控制权移交给HANA。
RESET BY子句仅在实例启动期间执行; 因此,这可能是您的选择:删除或截断表并重新启动数据库。

另一个选择是尝试通过设置支持参数来规避对系统对象的保护。 但是,这会使HANA实例的结构完整性容易受到破坏,因此我根本不建议这样做。

相反,如果您确实需要能够控制序列生成的数字 ,则不要使用全自动IDENTITY,而要使用自定义序列。

IDENTITY和SEQUENCE数字旨在以无锁方式提供无意义的数字。
如果您需要重置它们,那么我认为实际上还有一些附加含义,例如" 插入记录的顺序"或" 运行编号" 表中的记录数"。 IDENTITY或SEQUENCES不支持这些含义!
我强烈建议您检查一下有关此数字对数据意味着什么的假设,以及您是否在此处使用正确的工具进行工作。

一周热门 更多>