Storing calculated (and ordered) information like this in the database is typically a bad idea. It introduces unnecessary overhead and complexity and may be very hard to get accurate when simultaneous usage of the table is taken into account.
Typically ordering and numbering is done whenever the table is queried. This way you get accurate results each time you fetch the data without the need to program anything extra. In SQL Server
ROW_NUMBER
function is designed for this.
For more information, have a look at
ROW_NUMBER (Transact-SQL) - SQL Server | Microsoft Docs[
^]