[英]TSQL :how to reset the value of identity column in a table?
每次更改另一列的值是否可以重置自動值?
我有一個經典的數據庫INVOICES,其中包含兩個相關的表(一對多),HEAD和LINES。
表HEAD:ID_TESTA,CUSTOMER ...等(ID_TESTA列是PK,也是標識)
表LINES:ID_TESTA,ID_RIGA,ITEM,PRICE等...(ID_TESTA和ID_RIGA列是組成PK的字段,ID_RIGA列也是一個標識。此ID_RIGA列應隨ID_TESTA值的每次更改而重置。
例子:現在表LINES是這樣的:
1 1 Article 100 €
1 2 piece 30 €
2 3 nails 40 euro
2 4 screws 50 €
2 5 wood 47 €
3 6 rows 38 €
3 7 crane 6 €
我希望如此:
1 1 Article 100 €
1 2 piece 30 €
2 1 nails 40 euro
2 2 screws 50 €
2 3 wood 47 €
3 1 rows 38 €
3 2 crane 6 €
在提供表的TSQL INSERT語句中,我沒有編寫標識列,它們由數據庫自動分配。
再見,坦克,你
在表上查詢時,只需執行以下操作:
select l.*, row_number() over (partition by id_testA order by id_riga) as seqnum
from lines l;
您可以將其放在視圖中,以便在使用表的任何地方都可以使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.