仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 665|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网页编程之ERP体系中与BOM有关的经常使用办法

[复制链接]
飘灵儿 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:24:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
但我们知道,若使用statement,并没有上述需要的数据。试想binlog中记录了一句updatetsetf1=3whereid=3。怎么恢复呢?erp
一:BOM睁开(按任一父结点睁开到最底层)
以下写一个复杂的,视详细请求稍做修正便可。
createtable表(levelidint,levelnamechar(2),parentint)
insert表select1,AA,0
unionallselect2,BB,1
unionallselect3,CC,1
unionallselect4,DD,2
unionallselect5,EE,3
unionallselect6,FF,5

createfunctionbom(@namechar(2))
returns@tbtable(levelidint,levelnamechar(2),parentint)
as
begin
insert@tbselectlevelID,LevelName,parentfrom表whereLevelname=@name
while@@rowcount>0
insert@tbselectlevelID,LevelName,parentfrom表
whereparentin(selectlevelIDfrom@tb)
andlevelIDnotin(selectlevelIDfrom@tb)
return
end

select*fromdbo.bom(bb)
levelidlevelnameparent
-------------------------------
2BB1
4DD2

(所影响的行数为2行)



二:LLC(最低层码)
1:物料主文件中最少有这两个字段
itemNo,llc
2:BOM中最少有这两个字段(树状)
parentItem,itemNo
3:
CreateProcedureLLC
As
Update物料主文件setllc=0--先将LLC全体清为0
Declare@itinyint
Set@i=0
While@i<=10--假定BOM最多只要10层
Begin
UpdateaSeta.llc=@i+1--子结点的LLC加1
From物料主文件a
Joinbombona.itemNo=b.itemNo
Join物料主文件conc.itemNo=b.parentItem
wherec.llc=@i
Set@i=@i+1
End

/***********Usage:ExecLLC*******/

这能找出所有错误的99.99%。它不能找出的是仅仅涉及数据文件的损坏(这很不常见)。如果你想要检查一张表,你通常应该没有选项地运行myisamchk或用-s或--silent选项的任何一个。
爱飞 该用户已被删除
沙发
发表于 2015-1-19 11:05:15 | 只看该作者
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-1-24 12:47:51 | 只看该作者
另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);
兰色精灵 该用户已被删除
地板
发表于 2015-2-1 12:54:40 | 只看该作者
对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
金色的骷髅 该用户已被删除
5#
发表于 2015-2-7 06:26:05 | 只看该作者
多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。
莫相离 该用户已被删除
6#
发表于 2015-2-20 19:22:11 | 只看该作者
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
小妖女 该用户已被删除
7#
发表于 2015-3-6 18:57:09 | 只看该作者
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
再见西城 该用户已被删除
8#
发表于 2015-3-13 06:09:27 | 只看该作者
分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。
第二个灵魂 该用户已被删除
9#
发表于 2015-3-20 14:40:08 | 只看该作者
两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 23:56

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表