使用Row_Number的Partition語法來處理,但此指令要MSSQL 2005版本以上才有。
例:Select Row_Number() OVER(Partition by item order by item ) AS '序號',
Item
From TableName
在Insert時, 先select 出同樣ITEM的筆數
再加1, 做為要Insert到"序號"欄位的值
不過建議最好能用交易機制包起來你的Insert
不然如果同時間有2筆以上Insert時
序號會算錯
這個欄位沒有什麼意義,因為隨時可以從資料庫 select 出同類 ITEM 並賦與它們序號。你這樣把序號填在欄位上,那如果刪除其中一個,豈不是要重排一次同類 ITEM 嗎?這是更沒意義的事。
假如你只是想要把它們新增先後當做排序規則,倒不如放個《加入的時間》還來得有意義。