1. 程式人生 > >SQL SERVER 根據日期自動生成流水號

SQL SERVER 根據日期自動生成流水號

----函式中不能使用getdate()函式


----建立得到當前日期的檢視
CREATE VIEW v_GetDate
AS
SELECT nowdate=CONVERT(nvarchar(50),GETDATE(),112)

--自動生成訂單編號,長度為14,前8位為年月日,後6位為流水號 20080101000001
CREATE FUNCTION FC_newid()
    RETURNS nvarchar(50)
AS
BEGIN
    DECLARE @nowdate nvarchar(50)
    select @nowdate = nowdate FROM v_GetDate
    return (SELECT @nowdate+RIGHT(1000001+ISNULL(RIGHT(MAX(id),6),0),6) FROM  tb WITH(XLOCK,PAGLOCK) WHERE id like @nowdate+'%')
END

這個就可以在設計表時設為預設值,和在儲存過程中使用,dbo.FC_newid()