数据库骚操作——Z表创建原创
金蝶云社区-i求知若渴
i求知若渴
12人赞赏了该文章 1,401次浏览 未经作者许可,禁止转载编辑于2019年12月26日 17:38:18

【Z表简介】

金蝶云星空中业务对象内码获取的方式有如下两种:

1、整数型的内码,绝大部分是通过一个包含自增列(列名统一为id)的z_开头的表来实现的,如科目多语言表t_bd_account_l对应的z表为z_bd_account_l;当然也有例外如T_BD_MATERIALGROUPLEVEL及其他分组级次表的主键是直接利用自增列来生成内码的。

2、字符型的内码,通过newid()生成唯一的guid作为内码,比如报表T_KDS_RPT或者辅助资料类别T_BAS_ASSISTANTDATA。

【Z表生成时机】

部分表创建数据中心的时候已经生成,但是,也有一部分的表要等到第一次使用的时候系统才生成,如初始核算数据明细表Z_HS_INITCALCULATEENTRY空白账套是没有这个表的

【如何生成Z表】

如果不是通过数据库直接操作,是不需要担心Z表不存在的,因为不存在时系统会自动生成。当系统中不存在Z表又需要通过数据库直接获取Z表的内码的时候,才需要自己创建。比如我们的【金蝶云星空专项服务工具】的数据结转(https://kdcsrv.ik3cloud.com/)工具,自动生成初始核算数据,如果操作的数据中心没有做过核算数据录入,那么我们就需要自己创建Z_HS_INITCALCULATEENTRY了。

以下是创建Z表的脚本,只需要替换@ftablename参数即可执行,并且只有在Z表不存在时创建。

declare @sql nvarchar(max)

declare @ftablename nvarchar(100)

set @ftablename='z_bd_account_L'

set @sql=

'if not exists (select 1 from sys.tables where name='''+@ftablename+''')

CREATE TABLE [dbo].['+@ftablename+'](

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

[Column1] [int] NOT NULL,

CONSTRAINT [P'+@ftablename+'] PRIMARY KEY CLUSTERED ([Id] ASC)

WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]'

exec (@sql)



赞 12