Category : SQL
Reg Date : 2008/11/04 19:00
要使用 MSSQL 的自動編號欄位, 只需要簡單的設定識別規格中 Is Identity, 就可以很容易的產生一個自動編號欄位。不過有時候這樣的自動編號並不能滿足所有的需求。例如客戶可能會要求訂單編號是加上日期之類的做為訂單的開頭。例如 2008/11/4 第一筆訂單的訂單編號要是 2008110400001, 第二筆就要是 2008110400002, 11/5 的又要重 1 開始編起 2008110500001, 2008110500002...。
這時候利用自動編號欄位就不夠使用了。

這時候可以利用函數的方式來解決這個問題。下面就直接做一個範例。
首先我們先建立一個資料表 Orders


再來, 我們先建立一個函數 GetOrderID():

* 新建立的函數, 你可以在資料庫下的「可程式性 / 函數 / 純量值涵數」中找到

最後, 將資料表與函數整合的方法是進入設計資料表。在 OrderID 欄位的「預設值或繫結」輸入 dbo.GetOrderID()。此時在資料表中再新增資料時, 訂單編號 OrderID 欄位, 就會產生我們想要的編號方式了。
1 2008110300001 5 2008/11/4 下午 05:12:00
2 2008110300002 1 2008/11/4 下午 05:12:00
3 2008110300003 3 2008/11/4 下午 05:12:00
4 2008110300004 4 2008/11/4 下午 05:12:00
5 2008110400001 2 2008/11/4 下午 05:35:00
6 2008110400002 5 2008/11/4 下午 05:35:00
7 2008110400003 4 2008/11/4 下午 05:35:00




  , ,
 1   0
日誌引用(傳送)地址 ::  http://diary.tw/march/trackback/604
Trackback from My Program 2008/11/05 00:34 X
Title :  SQL Server的Identity欄位使用/複製/重設
views: 42285 times 在資料庫中, 常用的一個流水編號通常會使用 identity 欄位來進行設置, 這種編號的好處是一定不會重覆, 而且一定是唯一的, 這對table中的唯一值特性很重要, 通常用來做客戶編號, 訂單編號等功能, 以下介紹關於此種欄位常用方式及相關技術. 後面的範例表皆以此表為建立: CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40)) more.. 1. 在程式中取得iden..
只有管理員可閱讀 

 

<<上一頁 | 1 ... | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 ... | 18 | 下一頁>>