SQL Server數(shù)據(jù)庫流水號的使用方法詳解
作者:楊明波
本文我們主要介紹了SQL Server數(shù)據(jù)庫中流水號的使用,并通過實際的例子對其使用方法進行了詳細(xì)的解釋,希望能夠?qū)δ兴鶐椭?/div>
SQL Server數(shù)據(jù)庫流水號的使用方法是本文我們主要要介紹的內(nèi)容,這段時間開發(fā),又涉及到使用流水號功能。不同的條件,使用二種前綴。后面的流水號還是要流水的功能,要求再加上位數(shù)已經(jīng)有所變化了。為了解決此問題,只有添加另外一個自定義函數(shù)在SQL中。
改寫如下,可參考:
- udf_SeriesNumber
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- CREATE FUNCTION [dbo].[udf_SeriesNumber]
- (
- @Number NVARCHAR(12), --原來的值
- @Digit INT --流水號的位數(shù)
- )
- RETURNS NVARCHAR(100)
- AS
- BEGIN
- DECLARE @ReturnValue NVARCHAR(100)
- IF (@Number IS NULL)
- SET @ReturnValue = REPLICATE('0', @Digit - 1) + '1'
- ELSE
- BEGIN
- DECLARE @nbr NVARCHAR(6)
- SET @nbr = CONVERT(NVARCHAR,(CONVERT(INT, RIGHT(@Number, @Digit)) + 1))
- SET @nbr = REPLICATE('0', @Digit - LEN(@nbr)) + @nbr
- SET @ReturnValue = @nbr
- END
- RETURN @ReturnValue
- END
接下來,就可以實現(xiàn)會議室預(yù)的的會議流水號功能,也許以后又來一個流水號的,還是使用上面的自定義函數(shù)。有好幾個會議室,而第一個會議室是一個虛擬會議室,只能作為測試使用,其余的會議室全作為正式的會議室供預(yù)定。這些預(yù)定的出來的流水號需要區(qū)分,虛擬的會議流水號如下:#000001,#000002,#000003,...,#999999。而正式的會議流水號,如:M000001,M000002,M000003,...,M999999。
下面的程序是產(chǎn)生流水號的實現(xiàn)功能:
- udf_GetMeetingNumber
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- CREATE FUNCTION [dbo].[udf_GetMeetingNumber]
- (
- @MeetingRoomId SMALLINT
- )
- RETURNS NVARCHAR(20)
- AS
- BEGIN
- --宣告兩個變量,一個是流水號的前綴,初始化其值。另個是將保存最新的會議號碼。
- DECLARE @Prefixion NVARCHAR(2) = 'M', @LastMeetingNumber NVARCHAR(20)
- IF (@MeetingRoomId = 1)
- BEGIN
- --如果是虛擬的會議室,去會議室預(yù)定的記錄表,找到最新的會議號碼
- SELECT TOP 1 @LastMeetingNumber = [Meeting_Number] FROM [dbo].[MeetingRoomBooking] WHERE [MeetingRoomId] = @MeetingRoomId ORDER BY [MeetingRoomBookingId] DESC
- --設(shè)定前綴
- SET @Prefixion = '#'
- END
- ELSE
- --如果是其它的會議室,找到最新的會議號碼
- SELECT TOP 1 @LastMeetingNumber = [Meeting_Number] FROM [dbo].[MeetingRoomBooking] WHERE [MeetingRoomId] <> 1 ORDER BY [MeetingRoomBookingId] DESC
- --結(jié)合上面的流水號產(chǎn)生的自定義函數(shù),與前綴組合,得到流水號。產(chǎn)生6位的流水號
- RETURN @Prefixion + [dbo].[udf_SeriesNumber] (@LastMeetingNumber,6)
- END
關(guān)于SQL Server數(shù)據(jù)庫中流水號的使用方法就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】
責(zé)任編輯:趙鵬
來源:
博客園


相關(guān)推薦




