日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

获取流水号

發(fā)布時間:2024/1/18 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 获取流水号 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

/* Auother :Kangco CreateDateTime : 2007/09/03 --======================================================= Subject:獲取流水號 Input Parameter: @S_TABLE --表名 例'PBPM' @S_OUTO_FIELD--流水號字段名 例 'ODD_ID' @S_SYSEM_TYPE --系統(tǒng)別例'PSS' @S_UNIT_NAME --單據(jù)名稱例'1' --======================================================= eg: ("PSMPRECM", "SMPREC_ID", "PAS", "1") exec [dbo].[sp_OutoID] 'PSMPRECM','SMPREC_ID','PAS','1' exec [dbo].[sp_OutoID] 'PBPM','ODD_ID','PSS','1' exec [dbo].[sp_OutoID] 'PINVTADJM','ODD_ID','PSS','9' */ ALTER PROCEDURE [dbo].[sp_OutoID] (@S_TABLE varchar(100), @S_OUTO_FIELDvarchar(100), @S_SYSEM_TYPE varchar(100), @S_UNIT_NAME varchar(100)) AS /* SET NOCOUNT ON */ -- DECLARE @S_OUTO_MAXID VARCHAR(100)--自動流水號 -- SET @S_OUTO_MAXID ='' DECLARE @S_SQL VARCHAR(5000) DECLARE @S_OUTO_VALUE_MAX VARCHAR(100) DECLARE @I_OUTO_NUM_LEN INT SET @S_SQL = '' --查詢語句 SET @S_OUTO_VALUE_MAX = '' --最大值 SET @I_OUTO_NUM_LEN = 5 --流水號數(shù)字部分的長度 --=============獲取流水號設(shè)定參數(shù)============= DECLARE @S_CODE_TYPE VARCHAR(100) DECLARE @S_CBCODE VARCHAR(100) SET @S_CODE_TYPE = '' SET @S_CBCODE = '' --SELECT * FROM BUNITCODEM SELECT --SEQ_NO,dbo.FN_getTypeName('SYSEM_TYPE',SYSEM_TYPE) AS SYSEM_TYPE,dbo.FN_getTypeName('UNIT_NAME',UNIT_NAME)AS UNIT_NAME, @S_CODE_TYPE = dbo.FN_getTypeName('CODE_TYPE',CODE_TYPE) , @S_CBCODE =ISNULL( CBCODE,'') FROM BUNITCODEM WHERE SYSEM_TYPE =@S_SYSEM_TYPE AND UNIT_NAME =@S_UNIT_NAME PRINT @S_CODE_TYPE PRINT @S_CBCODE IF(@S_CODE_TYPE = '') BEGIN SELECT 'false' AS OUTOID RETURN--如果為空返回 END --=============獲取流水號設(shè)定參數(shù)END============ --=============處理日期部分============ DECLARE @S_YEAR VARCHAR(10) DECLARE @S_MONTH VARCHAR(10) DECLARE @S_DAY VARCHAR(10) DECLARE @DT_DATE VARCHAR(10) -- SET @S_YEAR = '' -- SET @S_MONTH = '' -- SET @S_DAY = '' IF(SUBSTRING(@S_CODE_TYPE,LEN(@S_CODE_TYPE)-1,2) = '中歷') BEGIN --PRINT 'ok' --中歷 SET @DT_DATE =CONVERT(CHAR(10),dbo.FN_ConvertDate(CONVERT(CHAR(10),GETDATE(),111)),111) SET @S_YEAR = SUBSTRING(@DT_DATE,1,3) SET @S_MONTH = SUBSTRING(@DT_DATE,5,2) SET @S_DAY = SUBSTRING(@DT_DATE,8,2) PRINT@S_YEAR + @S_MONTH+@S_DAY END ELSE BEGIN --PRINT 'NO' --公歷 SET @DT_DATE =CONVERT(CHAR(10), GETDATE(), 112) SET @S_YEAR = SUBSTRING(@DT_DATE,1,4) SET @S_MONTH = SUBSTRING(@DT_DATE,5,2) SET @S_DAY = SUBSTRING(@DT_DATE,7,2) PRINT@S_YEAR + @S_MONTH+@S_DAY END --Add by Kangco 20070926 --年 IF(CHARINDEX('Y',@S_CODE_TYPE)=0) BEGIN SET @S_YEAR = '' END --月 IF(CHARINDEX('M',@S_CODE_TYPE)=0) BEGIN SET @S_MONTH = '' END --日 IF(CHARINDEX('D',@S_CODE_TYPE)=0) BEGIN SET @S_DAY = '' END --=============處理日期部分END============ --=============獲取流水號數(shù)字部分的長度============ --PRINT @S_CODE_TYPE --PRINT CHARINDEX('9',@S_CODE_TYPE) --DECLARE @S_MAXID_NUM_LEN VARCHAR(10) SET @I_OUTO_NUM_LEN =LEN(@S_CODE_TYPE) - CHARINDEX('9',@S_CODE_TYPE) -2 + 1 PRINT @I_OUTO_NUM_LEN --=============獲取流水號數(shù)字部分的長度END============ --=============獲取最大ID號================= --定義臨時表 --CREATE TABLE #TEMPTBL(MAX_ID VARCHAR(100)) CREATE TABLE #TEMPTBL(IDENTITY_ID int IDENTITY(1,1),MAX_ID VARCHAR(100)) --SET @S_SQL = 'INSERTINTO #TEMPTBL SELECTMAX('+@S_OUTO_FIELD+') AS MAX_ID ' +' FROM '+@S_TABLE+'' SET @S_SQL = 'INSERTINTO #TEMPTBL SELECT'+@S_OUTO_FIELD+' AS MAX_ID ' +' FROM '+@S_TABLE+'' --PRINT @S_SQL EXEC(@S_SQL) --取自動流水號的最大值 Edit by Kangco 2007/09/12 SELECT TOP 1 @S_OUTO_VALUE_MAX = MAX_ID FROM#TEMPTBL ORDER BY IDENTITY_ID DESC PRINT @S_OUTO_VALUE_MAX DROP TABLE #TEMPTBL --=============獲取最大ID號end================= --PRINT @S_OUTO_VALUE_MAX --=============產(chǎn)生自動ID號================= IF(@S_OUTO_VALUE_MAX <> '')--之前有產(chǎn)生流水號 BEGIN DECLARE @S_LEN INT DECLARE @S_PROCESS VARCHAR(200) -- 處理協(xié)助變量 SET @S_LEN = LEN(@S_OUTO_VALUE_MAX) --PRINT @S_LEN PRINT(SUBSTRING(@S_OUTO_VALUE_MAX,@S_LEN + 1-@I_OUTO_NUM_LEN,@I_OUTO_NUM_LEN))+1 --處理數(shù)字部分 SET @S_PROCESS = CONVERT(INT,'1' + (SUBSTRING(@S_OUTO_VALUE_MAX,@S_LEN + 1-@I_OUTO_NUM_LEN,@I_OUTO_NUM_LEN))) +1 SET @S_PROCESS = SUBSTRING(@S_PROCESS,2,LEN(@S_PROCESS)-1) PRINT @S_CBCODE+ @S_YEAR + @S_MONTH+@S_DAY + @S_PROCESS SELECT @S_CBCODE+ @S_YEAR + @S_MONTH+@S_DAY + @S_PROCESS AS OUTOID END ELSE --之前沒有產(chǎn)生流水號 BEGIN PRINT @S_CBCODE+ @S_YEAR + @S_MONTH+@S_DAY +SUBSTRING('000000000000',1,@I_OUTO_NUM_LEN) SELECT@S_CBCODE+ @S_YEAR + @S_MONTH+@S_DAY +SUBSTRING('000000000000',1,@I_OUTO_NUM_LEN) AS OUTOID END RETURN

總結(jié)

以上是生活随笔為你收集整理的获取流水号的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。