[英]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.