网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.维护Sql Server中表的索引.
.Sql server 2005带来的分页便利.
.小记存储过程中经常用到的本周,.
.SQL Server 2005导入导出存储过程.
.重新安装系统后 Sql Server 2005.
.怎样获得Sqlserver 2000得实例列.
.数据库完整性就是数据库完整性约.
.使用insert插入大量数据的个人经.
.数据转换冲突及转换过程中大对象.
.数据仓库工程师面试过程中经常遇.
.用一条SQL实现:一行多个字段数据.
.带你轻松接触一个可以自动创建过.
.讲解一个检索最近日期的采购价的.
.SQL技巧:快速掌握一些异常精妙的.
.MS SQLSERVER 中如何得到表的创建.
.巧用dbms_rowid包获得rowid的详细.
.用UTL_INADDR包获取已经连接用户.
.[SQLServer2000]TEMPDB丢失或TEM.
.对 SQL Server 2005 自述文件的更.
.由浅入深讲解SQL Server 2005数据.

根据一定原则自动生成序列号的具体示例

发表日期:2008-8-15


需求:

◆1、生产收货时,在数量处按CTRL+TAB,在序列号录入处按ShiFT+F2,能自动生成序列号;


◆2、生成原则如下:0703MG51T-09-S05-1200#001,其中0703为年月代码,MG51T-09-S05-1200为物料号,#号为分隔符,001为本月第一笔收货,以后自动加1。


我的语句如下:

declare @t1 as varchar(32)

declare @t2 as varchar(32)

declare @itemcode as varchar(20)


declare @y as varchar(20)

declare @m as varchar(20)

declare @ml as integer


declare @qty1 as varchar(3)

declare @maxid as varchar(3)


declare @tid as varchar(3)


select @itemcode=rtrim($[$43.5.0])

select @y=substring(cast(year(getdate()) as varchar),3,2)

select @m=cast(month(getdate()) as varchar)

select @ml=len(Rtrim(@m))


if @ml=1

select @m='0'+@m

else select @m=@m


select @t1=Ltrim(@y+@m+@itemcode)


select @qty1=isnull(count(*),0) from OSRI where ItemCode=@itemcode and substring(IntrSerial,1,4)=@y+@m

if Rtrim(@qty1)='0'

begin

select @tid='001'

end

else

begin

select @maxid=cast(isnull(max(cast(substring(IntrSerial,len(Rtrim(IntrSerial))-2,3) as float)),0) as float)+1 from OSRI where ItemCode=Rtrim(@itemcode) and substring(IntrSerial,1,4)=@y+@m

if len(Rtrim(@maxid))=0

begin

select @tid='001'

end

if len(Rtrim(@maxid))=1

begin

select @tid='00'+cast(Rtrim(@maxid) as char(1))

end

if len(Rtrim(@maxid))=2

begin

select @tid='0'+cast(Rtrim(@maxid) as char(2))

end

if len(Rtrim(@maxid))=3

begin

select @tid=cast(Rtrim(@maxid) as char(3))

end

end

select @t2=@t1+'#'+@tid

select @t2

上一篇:SQL存储过程和触发不能使用USE的应对方法 人气:1417
下一篇:使用SQL Server 2008管理非结构化数据 人气:760
浏览全部sql server的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐