资源描述
寒山sql数据库修复中心
SQL 简单数据的出错分析及修复方法: 简单的数据结果表:
1)基本信息表 基本信息表
名称
职员信息表 库存商品信息表 往来单位 摘要表 地区信息表 会计科目表 仓库信息表 部门信息表 2)表格单据清单 表格单据清单 employee Ptype btype Abstract AreaType atypecw Stock Department
代码
名称
订单索引表 订单明细表 单据索引表 进货单明细表 销售单明细表 零售单索引表 零售单明细表 其他单据明细表(比如调拨单,收.付款等) 凭证明细表 3)其他常用表 其他常用表: 其他常用表 DlyndxOrder BakDlyOrder Dlyndx Dlybuy BakDlyOrder Dlyndxretail Dlyretail Dlyother Dlya
代码
名称
操作员表 系统初始值表 系统配置表 单据配置表 单据类型表 自动盘赢盘亏表 列配置表 商品库存分布表 Loginuser Sysdata Syscon vchcon Vchtype CheckedCount ColConfig GoodsStocks
代码
期初商品库存分布表 库存上下限报警设置表 客户跟踪价格表 期初发货、委托、受托商品库存表 发货、委托、受托商品库存表 发货结算单明细表 固定资产基本信息表(包括固定资产类别、 增 减方式、使用状况) 固定资产减少 固定资产折旧明细 固定资产明细表 会计期间表 期初借进借出商品表 借进借出商品表 门店登记信息表
IniGoodsStocks GoodsWar Price IniCommission Commission Sendjsdly Fixbasic Fixdel FixDepDetail FixDetail MonthProc Lendborrow00 Lendborrow Posinfo
常用表中的主要字段介绍
1.商品信息库 商品信息库(ptype) 商品信息库
名称 商品 ID 父 ID 级数 现有儿子数 曾有儿子数 商品编码 全名 简名 规格 型号 地区 备注 最新进价 是否删除 成本算法 记录号 父记录号 条码 字段 typeId ParId leveal sonnum soncount UserCode FullName Name Standard Type Area Comment recPrice deleted costmode Rec ParRec barcode 注释 唯一,系统自动累加 父类的记录号 一般来说 soncount 大 于,等于 sonnum 数 数据类型 varchar(25) varchar(25) Smallint Int Int varchar(26) varchar(66) varchar(30) varchar(20) varchar(20) varchar(30) varchar(250) numeric(18,4) bit int int int varchar(50)
系统自动生成,唯一
销售退货取的入库商品的成本首先取最近加价值(recprice),如果没有的话才 注 :销售退货取的入库商品的成本首先取最近加价值 销售退货取的入库商品的成本首先取最近加价值 如果没有的话才 取当前库存成本值. 取当前库存成本值
2.往来单位信息库(btype) 与商品信息库相同的字段这里就不介绍了
名称 应收发生额 应付发生额 期初应收 期初应付 是否客户(还是供应商) 应收超额 应付超额 字段 Artotal Aptotal Arttl00 Apttl00 Isclient Arlimit Aplimit 注释 数据类型 Numeric(9) Numeric(9) Numeric(9) Numeric(9) Int varchar(66) varchar(30)
3.职员信息表 仓库信息表 地区 部门的信息表的结构都跟商品信息表的差不多 职员信息表,仓库信息表 地区,部门的信息表的结构都跟商品信息表的差不多 职员信息表 仓库信息表,地区 部门的信息表的结构都跟商品信息表的差不多. 会计科目表(atypecw,atype) 4.会计科目表 会计科目表
名称
借贷方向 借方全年累计发生额 借方期初发生额 借方发生额 01…12 当前借方余额 期初借方余额 期末借方余额 01…12 贷方全年累计发生额 贷方期初发生额 debit Debit00 debit01 DebitTTL DebitTTL00 DebitTTL01 lend Lend00 每个会计期间的借 方余额 用于查询利润表中 的本年累计 即期初帐务数据中 的本年累计发生贷 方 每个会计期间的贷 方发生额 每个会计期间的借 方发生额
代码
direction
注释
用于查询利润表中 的本年累计
数据类型
char(1) numeric(18,2) numeric(18,2) numeric(18,2) numeric(18,2) numeric(18,2) numeric(18,2) numeric(18,2) numeric(18,2)
贷方发生额 01…12 当前贷方余额 期初贷方余额 期末贷方余额 01…12 期初本年损益累计发 生
lend01 LendTTL LendTTL00 LendTTL01 debitlend
numeric(18,2) numeric(18,2) numeric(18,2)
每个会计期间的贷 方期末余额
numeric(18,2) numeric(18,2)
注:这个表中的科目余额发生额的值,都是通过发生的相关业务单据计算出来的值,我们 这个表中的科目余额发生额的值,都是通过发生的相关业务单据计算出来的值, 一般不做直接修改。 一般不做直接修改。
5. 单据索引表 单据索引表(dlyndx)
名称
单据号 制单日期 物流单据编号 单据类型 物流单据摘要 凭证编号 往来单位 ID 职员 ID 仓库 ID 仓库 ID2 物流科目 审核人 ID 会计期间 红冲标记 被红冲标记 登帐人 ID 制单人 ID 草稿标记
代码
Vchcode Date Number VchType summary Comment btypeid etypeid ktypeid ktypeid2 ifcheck checke period RedWord RedOld accounte InputNo draft 1 草稿单据
注释
系统生成,唯一,与明细表是 通过 vchcode 相关连的.
数据类型
numeric(10) varchar(10) varchar(60)
在 VchType 表中可以查询到
numeric(4) varchar(256) int
往来单位(btype)中的 typeid 职员(employee)中的 typeid 仓库(stock)中的 typeid 调拨单等需要两个仓库的单 据时用 物流单有的要输入的科目
varchar(25) varchar(25) varchar(25) varchar(25) varchar(25) varchar(25) smallint
为’ 时表示这张单据是红 T’ 冲或被红冲单据 为’ 时表示这张单据是被 T’ 红冲单据 空的话是未登帐
char(1) char(1) varchar(25) varchar(25) int
2 已过账单据 3 临时单据 单据合计金额 单据的票据类型 部门 ID Total BillType projectid numeric(18,2) int varchar(25)
Dlya,dlysale,dlybuy 等明细表中记录的是所有单据发生的明细 这里不作详细介绍比如说要 等明细表中记录的是所有单据发生的明细,这里不作详细介绍比如说要 修改某张销售单据中某个商品销售价格或者销售成本,在 修改某张销售单据中某个商品销售价格或者销售成本 在 dlysale 里面我们就可以修改的字 字段值,还要将 中对应的科目值重新写一下. 段是 price,total 或者 costprice,costtotal 字段值 还要将 dlya 中对应的科目值重新写一下
6.系统初始值表 系统初始值表(sysdata) 系统初始值表
名称
系统编号 项目名称 项目值 备注
代码
SubNo SubName SubValue SubComment
注释
数据类型
int varchar(30) varchar(100) varchar(30)
是会计其间; 注:表中 subname=period 是会计其间 表中 startdate:做帐开始日期 做帐开始日期; 做帐开始日期 niover :是否已经开帐 为未开帐 为已开帐 是否已经开帐,0 是否已经开帐 为未开帐,1 为已开帐; enddate:做帐开始日期 做帐开始日期; 做帐开始日期 versionno:软件的版本序列号 软件的版本序列号
7.商品库存分布表 商品库存分布表(goodsstocks),期初库存 期初库存(inigoodsstocks) 商品库存分布表 期初库存
名称
商品 ID 仓库 ID 批号 生产日期 库存数量 成本单价 库存金额 批次
代码
PtypeId KtypeId JobNumber OutFactoryDate Qty Price Total GoodsOrder 系统值
注释
数据类型
varchar(25) varchar(25) varchar(20) varchar(13) numeric(18,4) numeric(18,4) numeric(18,2) int
商品的库存分布和批次详情都是写在这个库中的,如果商品在某个仓库中的数量和金额 注 :商品的库存分布和批次详情都是写在这个库中的 如果商品在某个仓库中的数量和金额 商品的库存分布和批次详情都是写在这个库中的 的时候,在这个表中是不应该显示出来的 在这个表中是不应该显示出来的. 都为 0 的时候 在这个表中是不应该显示出来的 期初库存(inigoodsstocks)是同样的 我们这里也就不单独介绍了 是同样的,我们这里也就不单独介绍了 期初库存 是同样的 我们这里也就不单独介绍了.
8.客户跟踪价格表(price),跟踪的都是折前价格 客户跟踪价格表 客户跟踪价格表 跟踪的都是折前价格 9. 固定资产明细表 固定资产明细表(Fixdetail)
名称
vchcode usercode date Fullname DepartmentID Hisdep depatypeid
代码
vchcode usercode date Fullname DepartmentID Hisdep depatypeid
注释
数据类型
numeric(18) char(25) datetime char(50)
这个是部门 id,不可缺少 折旧金额 折旧对应科目
int numeric(18,2) varchar(25)
简单数据的修复方法: 简单数据的修复方法: 1.清除超级用户密码: update set loginuser
password=’’
where
etypeid=’00000’
2.进入账套时提示: ‘invalid variant type conversion’ (1)drop procedure z_checkpassword (2)CREATE PROCEDURE z_checkpassword AS select l.* , e.fullname as efullname from loginuser l, employee e where l .etypeid=e.typeid return 0 (3)delete from loginuser where etypeid not in (select typeid from employee) 3.期初库存商品数量为 0,但是不能删除基本信息。 Delete from Where qty=0 inigoodsstocks and total=0
4.辉煌版中由于以前版本的问题造成的期初收入类、费用类科目有余额,利润没 有清 0, UPDATE 以致资产负债表不平,将收入支出类科目清零 atype
SET TTL00 = 0 WHERE (typeId LIKE '00003%') OR (typeId LIKE '00004%') OR (typeId='0000500002') 5.辉煌版中点击库存状况时出现提示: invalid variant type conversion 检查一下 ptype 表中是否有字段长度过大的情况,比如 prepreice4 的值是否异 常大,如是在查询分析器中执行: Update ptype set preprice4=0
where prepreice4>1000000 6.辉煌版中“用户口令及权限设置”中增加一新用户总是排在“超级用户”前而 且不允许删除, “超级用户”却可以删除 Loginuser 中记录的顺序错了,在查询分析器中运行: begin tran
select * into #t from loginuser order by etypeid truncate table loginuser insert into loginuser select * from #t commit 7.如何将数据库物理文件恢复到 SQL SERVER 中, 情况一:有*.mdf 和*.ldf 文件, sp_attach_db @dbname = N'test', @filename1 = N'd:\mssql7\data\Test.mdf', @filename2 = N'd:\mssql7\data\Test.ldf' 注:@filename1 = N'd:\mssql7\data\Test.mdf': 物理数据库数据文件名称(包括路径,主文件名,扩展文件名); @filename2 = N'd:\mssql7\data\Test.ldf' 物理数据库日志文件名称(包括路径,主文件名,扩展文件名); 情况二:只有一个*.mdf 文件: EXEC sp_attach_db @dbname = N'guest', @filename1 = N'c:\medserver\data\abc.mdf' 注:c:\medserver\data\abc.mdf 为*.mdf 文件的路径 以上两种情况,将文件恢复后 以上两种情况,将文件恢复后,还要在 master 数据库中的 graspcwzt 中添加数 据库名与帐套名 8.如在管家婆中做年结存时,提“超时已过期” ,可在数据库中手工做年结存。 辉煌版: exec z_yearclose 标准版: a. b. exec CW_F_YearClose 1 exec CW_F_YearClose 2
先执行 a,再执行 b 9.日期录入错误的处理方法 步骤一: 首先在查询分析器中查找日期>当前日期的单据,执行语句如下: select * from dlyndx where date>’yyyy-mm-dd’
(注:yyyy-mm-dd 为当前日期格式 yyyy 为年,mm 为月,dd 为日) 步骤二: 修改日期: 1)、如只有年份录入错误,如把 2002-12-31 录成 2003-12-31,则执行: updata dlyndx set updata dlya date=’2002’+right(date,6) set where date>’yyyy-mm-dd’
date=’2002’+right(date,6) where date>’yyyy-mm-dd’
然后根据 dlyndx 中的 vchtype 确定单据的类型,然后修改对应的表。 如果是销售单: updata dlysale 进货单: updata dlybuy 其它的单据: updata dlyother set date=’2002’+right(date,6) where date>’yyyy-mm-dd’ set date=’2002’+right(date,6) where date>’yyyy-mm-dd’ set date=’2002’+right(date,6) where date>’yyyy-mm-dd’
2)、如日期全部需要修改,则执行: update dlyndx set date=’YYYY-MM-DD’ where date>’yyyy-mm-dd’
(YYYY-MM-DD 为输入的正确日期的格式) 然后依次把 dlyndx 改为 dlya 执行。然后确定单据的类型,修改其它的单据。 步骤三: 修改 sydata 表中的当月的结束日期。 Update sysdata set subvalue=’yyyy-mm-dd’ where subname=’enddate’
(yyyy-mm-dd 为过账单据的最大的日期,可由下列语句查出: Select max(date) from dlyndx where draft=2
步骤四: 修改月结存信息表 monthproc. 10.辉煌版中自动盘盈盘亏不能使用,每次使用时把盘点数量输入保存后再打开, 同一商品就会变为几个乃至几十个。 解决方法:是把 CheckedCount 库清空。 在查询分析器中执行:delete from CheckedCount
11、标准版中在应收款查询和应付款查询中,选择同一时间段时往来对账的此前
余额与明细账本中的此前余额不一致。 原因:查询一下在明细账本中有收、付款单,但在往来对账中是否有收、付款 单, 如往来对账中没有, 则是由于在 dlyndx 中 btypeid 有记录,而 dlya 中 btypeid 为空造成的。 解决方法: update dlya set btypeid = b .btypeid from dlya a inner join dlyndx b on a.vchcode = b.vchcode where a.vchtype in(4,66) 在查询分析器中执行:
12.在登账时提示“科目已经删除或者分类” ,不能登账 原因:有些会计科目已经分类或删除,而凭证指向的会计科目却仍然指向它。 解决方法:查找已分类或删除的科目,执行: SELECT FROM DlyA d * atypecw a INNER JOIN ON a.typeId = d.atypeid OR a.sonnum <> 0
WHERE a.deleted = 1
找出这些科目后,让客户修改 dlya 中的 atypeid,使其指向子类。 13. 标准版登帐时提示科目被删除或者分类的情况: 查找被删除或者分类的科目的执行语句: SELECT * FROM DlyA WHERE (atypeid IN (SELECT typeid FROM atypecw WHERE sonnum <> 0 or deleted=1)) 找到之后,重新将科目选择一次.
数据修复组
本文来自 sql数据库修复大师
展开阅读全文