博客园  :: 首页  :: 新随笔  :: 管理

SQL流水帐号的生成 【账号递增】

Posted on 2008-07-30 09:39  tianfu  阅读(623)  评论(1)    收藏  举报

  --下面的代码生成长度为8的编号,编号以BH开头,其余6位为流水号。
  --得到新编号的函数
  CREATE FUNCTION TnextBH()
  RETURNS char(8)
  AS
  BEGIN
      RETURN

     (SELECT 'BH'+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6FROM TestWITH(XLOCK,PAGLOCK))
  END
  GO
 
 --在表中应用函数
 CREATE TABLE Test(
 BH char(8PRIMARY KEY DEFAULT dbo.TnextBH(),
 col int)
 
 --插入资料
 BEGIN TRAN
     INSERT Test(col) VALUES(1)
     INSERT Test(col) VALUES(2)
     INSERT Test(col) VALUES(3)
     DELETE TestWHERE col=3
     INSERT Test(col) VALUES(4)
     INSERT Test(BH,col) VALUES(dbo.TnextBH(),14)
 COMMIT TRAN
 
 --显示结果
 SELECT * FROM Test
 /*--结果
 BH         col 
 ---------------- ----------- 
 BH000001  1
 BH000002  2
 BH000003  4
 BH000004  14
 --*/