系统运维.数据库.创建种子表

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

系统运维.数据库.创建种子表

【应用场景】

星空系统中的业务对象中的表的主键值,如果是自增ID,通常是用一个独立的种子表来维护。这些种子表有些是在设计业务对象的时候提前创建好,有些是推迟到运行时加载该业务对象时才创建(是的,系统能自动创建)。

例如采购订单的主表:T_PUR_POORDER,它的主键FID的值来自于种子表Z_PUR_POORDER。

如果这个种子表因为某种特殊情况被删除了,那么采购订单将无法再新增单据,需要重建种子表。

【注意】

所有基础资料的主表共用同一个种子表Z_BAS_ITEM。除此之外的表,都拥有自己的独立的种子表,维护种子表时,需要区分下当前处理的业务对象类型是基础资料还是单据。



【实操步骤】

仍以采购订单的主表:T_PUR_POORDER为例。

需要获取两个关键信息:

<1>获取种子表名。种子表名来自于原表,如果原表是T_开头,就改为Z_,如果原表不是T_开头,就在原表前面加一个Z_。此例,T_PUR_POORDER的种子表为Z_PUR_POORDER。

<2>获取当前表的主键的最大值。此例,获取T_PUR_POORDER表的主键最大值的SQL为:

SELECT MAX(FID) FROM T_PUR_POORDER


假定当前拿到的主键最大值为100000,创建种子表的SQL如下:

/*dialect*/ 

IF NOT Exists(SELECT 1 FROM SYSOBJECTS WHERE name = 'Z_PUR_POORDER')

BEGIN

CREATE TABLE [Z_PUR_POORDER]

(

[Id] [bigint] IDENTITY(100001,1) NOT NULL,

[Column1] [int] NOT NULL

CONSTRAINT [PZ_PUR_POORDER] PRIMARY KEY CLUSTERED 

(

[Id] ASC

))

END

---------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

系统运维.数据库.创建种子表

【应用场景】星空系统中的业务对象中的表的主键值,如果是自增ID,通常是用一个独立的种子表来维护。这些种子表有些是在设计业务对象的时候...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息