57.生成数字随机编号的案例

港控/mmm° 2024-02-19 17:58 138阅读 0赞
  1. --取得随机数的视图
  2. CREATE VIEW v_RAND
  3. AS
  4. SELECT re=STUFF(RAND(),1,2,'')
  5. GO
  6. --生成随机编号的函数
  7. CREATE FUNCTION f_RANDBH(@BHLen int)
  8. RETURNS varchar(50)
  9. AS
  10. BEGIN
  11. DECLARE @r varchar(50)
  12. IF NOT(ISNULL(@BHLen,0) BETWEEN 1 AND 50)
  13. SET @BHLen=10
  14. lb_bh: --生成随机编号的处理
  15. SELECT @r=re FROM v_RAND
  16. WHILE LEN(@r)<@BHLen
  17. SELECT @r=@r+re FROM v_RAND
  18. SET @r=LEFT(@r,@BHLen)
  19. --检查编号在基础数据表中是否存在
  20. IF EXISTS(SELECT * FROM tb WITH(XLOCK,PAGLOCK) WHERE BH=@r)
  21. GOTO lb_bh
  22. RETURN(@r)
  23. END
  24. GO
  25. --创建引用生成随机编号的函数
  26. CREATE TABLE tb(
  27. BH char(10) PRIMARY KEY DEFAULT dbo.f_RANDBH(10),
  28. col int)
  29. --插放数据
  30. BEGIN TRAN
  31. INSERT tb(col) VALUES(1)
  32. INSERT tb(col) VALUES(2)
  33. INSERT tb(col) VALUES(3)
  34. COMMIT TRAN
  35. SELECT * FROM tb
  36. GO
  37. /*--结果
  38. BH col
  39. ------------------------------ -----------
  40. 6128177354 1
  41. 7378536177 3
  42. 8387186129 2
  43. --*/

发表评论

表情:
评论列表 (有 0 条评论,138人围观)

还没有评论,来说两句吧...

相关阅读