Вы можете легко присвоить уникальный номер каждой строке, используя столбец идентификаторов. Идентификационные данные могут быть числовыми или целыми (в ASE12 +).
Это почти сделает то, что вам нужно. Есть определенные обстоятельства, при которых вы получите пробел в последовательности идентичности. (Они называются «пробелами в идентичности», лучшее обсуждение по ним - здесь ). Также удаление приведет к появлению пробелов в последовательности, которую вы определили.
Зачем вам нужно использовать max (col), чтобы получить количество строк в таблице, когда вы можете просто использовать count (*)? Если вы пытаетесь получить последний ряд из таблицы, тогда вы можете сделать
select * from table where column = (select max(column) from table).
Что касается триггера удаления для обновления столбца, управляемого вручную, я думаю, что это может стать потенциальным источником взаимоблокировок и многих проблем с производительностью. Представьте, что в вашей таблице 1 миллион строк, и вы удалили строку 1, то есть 999999 строк, которые теперь нужно обновить, чтобы вычесть 1 из идентификатора.