全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1202
推到 Plurk!
推到 Facebook!

請教自動編號的Stored Procedure(非identity)

尚未結案
skycapc
一般會員


發表:4
回覆:7
積分:2
註冊:2004-02-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-10 12:07:30 IP:210.243.xxx.xxx 未訂閱
請教各位高手: 我有一個編號是抓取一個資料表欄位 年 (EX:a0001)作編號, 其中我想把a0001作成Stored Procedure以預防Client抓到編號重複的問題, 因此段編號程式涉及Batchupdate,所以我想用MS SQL SERVER作Stored Procedure;一遇到要抓取編號時,就去執行此Stored Procedure, 但找了許多資料,卻無法寫出如何作到此編號,因為要在a9999時,下一個 抓取b0001,所以想請問各位,能否給我一個範例呢? 發表人 - skycapc 於 2004/02/10 13:45:22
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-10 13:05:54 IP:218.15.xxx.xxx 未訂閱
您好: 参考 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=20957 看下能不能帮得上您的忙! ——行径窄处,留一步与人行——
skycapc
一般會員


發表:4
回覆:7
積分:2
註冊:2004-02-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-10 13:44:02 IP:210.243.xxx.xxx 未訂閱
多謝您的回覆,可是那個案例的情況與我的不相同耶? 我因為是BatchUpdate,所以用Select Max(XX) from XXX 是不行的, 因為此時user尚未Update至資料庫.必須要有一個temp讓我存取值, 且需依編號情況判斷抓取第一個英文編號,如a9999,則下一個為b0001. 可能需寫到Strored Procedure來作到編號的程式. 請大家幫幫忙!謝謝!
regionbbs
一般會員


發表:0
回覆:6
積分:1
註冊:2003-08-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-10 17:57:00 IP:210.201.xxx.xxx 未訂閱
小弟認為可以有幾種解決方案 : 1. 搭配 tempdb 來實作這樣的功能 . tempdb 可以幫您保存您的編號 , 但由於 tempdb 的內容會在伺服器 (MSSQLServer 服務) 重新啟動或停止時刪除掉 , 所以您可能需要將變數內容保存在應用程式的資料中 . 2. 撰寫一個與 MAX() 功能相同的預存程序 (或使用者函式) , 再於需要時呼叫它 . ex: CREATE PROC sp_GetMaxID() AS SELECT TOP 1 ProductID FROM Products ORDER BY ProductID DESC (查詢中如果有其他字元的話要用字串函數處理後再排序) 3. 用應用程式去控制並決定 ID . ======================== K-top 新手 小朱 ps: 我不懂 Delphi 和 C Builder , 只是來這裡幫忙解決與 .NET Framework 或 Windows/Web 程式設計上的一些共同的問題 .
------
K-Top 新手
skycapc
一般會員


發表:4
回覆:7
積分:2
註冊:2004-02-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-11 11:11:28 IP:210.243.xxx.xxx 未訂閱
抱歉!一樣是相同的情況,在User 尚未Update回資料庫時, select TOP1 xx 或是 select Max(xx) 都是不行的. 此時編號仍在Client端,所以我是想用一個table,建一個欄位來存值. 再寫一段Stored Procedure,來作a0001到z9999的編碼動作. 我會再研究看看. 非常感謝大家的回覆!
系統時間:2024-06-28 19:09:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!