每次更改另一列的值时都可以重置自动值吗?
我有一个经典的数据库INVOICES,有两个相关的表(一对一),HEAD和LINES。
表头:ID_TESTA,CUSTOMER ......等(ID_TESTA列是PK,也是身份)
表LINES:ID_TESTA,ID_RIGA,ITEM,PRICE等......(ID_TESTA和ID_RIGA列是组合PK的,ID_RIGA列也是标识。 每次更改ID_TESTA值时,此列ID_RIGA都应重置。
示例:现在表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语句中,我不编写标识列,它们由数据库自动分配。
再见。再见 坦克你答案 0 :(得分:1)
在桌面上查询时,只需执行此操作:
select l.*, row_number() over (partition by id_testA order by id_riga) as seqnum
from lines l;
您可以将其放入视图中,以便在使用该表的任何位置都可用。