📄 subject_51188.htm
字号:
<p>
序号:51188 发表者:jamesgu2008 发表日期:2003-08-29 18:05:50
<br>主题:如何实现智能自动编号
<br>内容: 我想实现给某类固定资产的标签自动编号。我的思路是这样的:比如实现微机标签的自动编号。我用了如下方法:<BR> create table PC<BR>(ID as ltrim(category)+replicate('0',6-datalength(ltrim(str(qty))+<BR>ltrim(category)),<BR>category varchar(5),<BR> qty smallint identity(1,1),<BR> buydate datetime,<BR> price smallint,<BR> cur_user varchar(15))<BR> go<BR> insert into PC(category,buydate,price,cur_user)<BR> values('PC','1999-08-01',6500,'张三')<BR> select * from PC<BR> 显示如下:<BR> ID category qty buydate price cur_user<BR> ── ── ── ──── ─── ────<BR> PC0001 PC 1 1999-08-01 00:00:00 6500 张三<BR> 但由于种类太大将尽15种,这样我得建15个表,而我又想实现通过触发器把使用者和购买日期等变更了得记录自动插入相应的latest表中,因此又得建相同数量的表来储存变更后的记录。这样管理起来太麻烦。<BR> 请问能否在1张表中用我上述的插入方法实现微机(PC)、针打(PRZ)、行打(PRH)、激光打印机(PRL)、喷墨打印机(PRP)、路由器(RU)、交换机(SW)等各种固定资产的智能自动编号?<BR> 在此先谢了:-)<BR><BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:小叶 回复日期:2003-08-29 19:31:27
<br>内容:编号形式如何:<BR>是不是:<BR>微机(PC)1<BR>微机(PC)2<BR>针打(PRZ)1<BR>针打(PRZ)2<BR>...<BR>交换机(SW)5<BR>还是:<BR>pc1<BR>pc2<BR>pc3<BR>..<BR>pcx<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:jamesgu2008 回复日期:2003-08-30 09:22:43
<br>内容:固定资产编号我设的长度为6,编号格式如下:<BR>PC0001,PC0002:PRZ001,PRZ002:SW0001,SW0002 and so on.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:小叶 回复日期:2003-08-30 12:09:16
<br>内容:创建一个触发器.<BR>每次往表中插入数据库引起触发器(只更新插入的那一列).<BR>表的结构中应该有(pc,prz,sw)这一数据列,<BR>update autohao=pc+'00'+'数字'<BR>我觉得这个数字应该用select count(pc) from ...来计算得到.<BR>这是想法楼主你试试看别忘了试出来给我收藏哦.<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:jamesgu2008 回复日期:2003-08-30 15:38:30
<br>内容:看来我辛辛苦苦写的 PC表那个例子阁下没有仔细看,如果我们公司各类固定资产都不超过10个(太小瞧我们了,怎么说我们也进了Fortune 500),那你提供的方法也许还行,但你没注意我创建PC表时ID列的构成吗?我是用总长度6减去Category和qty的长度来计算需要重复多少个0来合成char(6)这个fixe表的ID列的。<BR><BR>其次,我是想实现当在INSERT语句中的Category列使用PC时能自动实现PC的标签自动编号,当使用PRZ时能自动实现针打的自动编号。<BR>如:<BR>insert into FIXED(category,buydate,price,cur_user)<BR> values('PC','1999-08-01',7500,'张三A')<BR> select * from fixed<BR> 显示如下:<BR> ID category qty buydate price cur_user<BR>── ── ── ──── ─── ────<BR>PC0002 PC 1 1999-08-01 00:00:00 7500 张三A<BR>请注意当第2次插入PC类固定资产时,ID列已经有原来的PC0001变成了现在的PC0002<BR><BR>insert into FIXED(category,buydate,price,cur_user)<BR> values('PRZ','1999-08-01',7500,'张三A')<BR> select * from fixed<BR> 显示如下:<BR> ID category qty buydate price cur_user<BR>── ── ── ──── ─── ────<BR>PRZ001 PRZ 1 1999-08-01 00:00:00 7500 张三A<BR>当第一次插入针打类固定资产时,ID为PRZ001<BR>insert into FIXED(category,buydate,price,cur_user)<BR> values('PRZ','1999-08-01',7500,'张三A')<BR> select * from fixed<BR> 显示如下:<BR> ID category qty buydate price cur_user<BR>── ── ── ──── ─── ────<BR>PRZ002 PRZ 1 1999-08-01 00:00:00 7500 张三A<BR>当第2次插入针打类固定资产时,ID由原来的PRZ001变成了现在的PRZ002。<BR><BR>其他类别的固定资产同上。<BR><BR>希望这次我的意思能让诸位明白。<BR>还有一件事,小叶姐,我在浏览你对其他疑问的精彩解答时,曾经对如何在SQL SERVER里创建foxpro的链接服务器有些疑问,我并且已经把我的疑问发到你的Email信箱了,还望你老人家在百忙之余能抽出点时间予以解答,小弟我那就感激不尽了。<BR><BR>大周末还得麻烦你来为我解答问题,小弟确实有些于心不忍,在此先略表歉意。如果有机会,定当请你吃饭,算作补偿。<BR><BR><BR><BR>2003-8-30 15:47:12
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -