- Login
帳號:
密碼:
ASP MENU
線上教學
   ASP 教學
VB.NET 教學
JSP 教學
JAVA 教學
完整 ASP 教學
程式下載
   ASP 程式下載
提供 ASP 程式
程式量身訂做
   收費標準
填寫需求表
討論交流專區
   程式討論區
電腦資訊交流
工作機會
   社會人就職情報
汎亞人力銀行
大台中人力銀行
大高雄人力銀行
相關連結
   ASP 虛擬空間
ASP 相關網站
聯絡我們
   意見信箱
加入會員程式討論區線上購物回首頁
ASP 教學
[轉貼] ASP自動生成編號的方法
用過許多序號的方法,indentity 或 new id() ,都不好用,自己寫了一個,這個序號的特點是:每次取相應表中的系統當天最大序號,如果當天無記錄,則自動生成一個當天序號。

  1.建種子表,這個表用來保存各個表目前已使用到的最大序號

  --種子表

  create table SEED (
  BM varchar(20) not null, --表名
  BH varchar(12) not null, --種子編號
  constraint PK_SEED primary key(BM)
  )
  go
  
  2.當我們建一個新表時,同時把這個表名記錄到種子表中,如:

  --向種子中表添加記錄

   insert into SEED (BM,BH) values('tablename','200211070000')
  go

  3.在資料庫建一存儲過程,自動生成新編號,此編號取當天時間,所以許多時候查詢某些天的記錄時,這個序號非常有用。

  --為參數傳遞來的某個表自動生成編號

  if exists (select * from sysobjects where name='proc_getbh')
  drop procedure proc_getbh
  go
  create procedure proc_getbh @BM varchar(20)
  as
  declare @BH char(12)
  declare @TODAY char(8)
  begin
  select @TODAY=convert(char(8),getdate(),112)
  select @BH=BH from SEED where BM=@BM
  if @BH is null or left(@BH,8)<>@TODAY
  begin
  select @BH=@TODAY+'0000'
  end
  select @BH=left(@BH,8)+ right('0000' + ltrim(convert(char(4),convert(int,right(@BH,4)))+1),4)
  update SEED set BH=@BH where BM=@BM
  select @BH AS BH
  end

  4.實例如下:

  '對表xxx自動生成新編號

  set rs=conn.execute("proc_getbh @BM='xxx'")
  這樣,rs("BH")就是你得到的新編號.




頂端
本網頁最佳瀏覽模式為:瀏覽器 IE4.0 以上    解析度: 800 x 600
Copyright © 2000-2017 COOLASP All Rights Reserved