台灣最大程式設計社群網站
線上人數
1542
 
會員總數:246133
討論主題:189712
歡迎您免費加入會員
討論區列表 >> MS SQL >> 請問如何寫PROCEDURE讓原有的資料依目標自動編號?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問如何寫PROCEDURE讓原有的資料依目標自動編號?
價值 : 50 QP  點閱數:2166 回應數:9
樓主

王玄
門外漢
0 2
136 3
發送站內信

捐贈 VP 給 王玄
我有一個TABLE資料都已經有了,現要新增一欄位SEQ
它需要依照PROD_NO的不同自動編號,
不知道要怎麼寫PROCEDURE,讓他可以自動產生編號?謝謝!!

EX:
PROD_NO SEQ
0001 1
0001 2
0002 1
0002 2
0002 3
0003 1

搜尋相關Tags的文章: [ 自動編號 ] , [ SQL ] , [ PROCEDURE ] ,
本篇文章發表於2010-03-15 18:57
1樓
最有價值解答

SteveT
檢舉此回應
不知道你的TABLE裡還有些什麼資料可利用, 只能就PROD_NO來做例子,
假設TABLE名是yourTable, 用Cursor:

本篇文章回覆於2010-03-16 01:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

James
捐贈 VP 給 James 檢舉此回應
參考看看...

本篇文章回覆於2010-03-16 07:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

王玄
捐贈 VP 給 王玄 檢舉此回應
SteveT 你的方式,會出現以下的錯誤耶,目前正在測試,謝謝!!
訊息 156,層級 15,狀態 1,程序 GetBOMSEQ,行 4
接近關鍵字 'DECLARE' 之處的語法不正確。

James 你的方式,出現的結果並不是我想要的答案歐,SORRY!!
本篇文章回覆於2010-03-16 09:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

SteveT
檢舉此回應
我在1樓寫的是"新增一欄位SEQ"之後, 一次把所有的SEQ填完, 無須另設procedure就可直接執行.
難不成您要的是"每新增一筆時設定SEQ值"嗎? 那寫法就不一樣了.
本篇文章回覆於2010-03-16 10:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

SteveT
檢舉此回應
剛發現有點小問題, 不過跟您說的錯誤無關
第14行:

本篇文章回覆於2010-03-16 10:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

QQ
檢舉此回應

本篇文章回覆於2010-03-16 10:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
不錯的參考

James
捐贈 VP 給 James 檢舉此回應
眼睛昏花沒看清楚問題....

本篇文章回覆於2010-03-16 12:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

王玄
捐贈 VP 給 王玄 檢舉此回應
謝謝大家,最後我參考SteveT的方式寫出來了,
James 你的方式很好,可是沒辦法使用在UPDATE中
視窗型函數只能出現在 SELECT 或 ORDER BY 子句中。
再次感謝大家幫忙!!

本篇文章回覆於2010-03-16 15:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應


檢舉此回應
如果是要每新增一筆時設定SEQ值"
用兩個cursor 要怎麼寫呢? 謝謝!!
本篇文章回覆於2020-10-27 12:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.