По моему опыту с готовыми и сделанными на заказ системами бухгалтерского учета в США, бухгалтерам или аудиторам не требуются последовательные номера. Что требуется, так это демонстрация возможностей контроля и аудита. Если элемент удален, должен быть след. Обнаружение удаленного элемента не отслеживается по отсутствующему номеру - в конце концов, существуют другие виды вмешательства, требующие последовательных номеров, и демонстрация адекватного контроля выходит далеко за рамки этого.
Однако в Мексике я видел такое требование о возмещении расходов правительству. Я полагаю, что они используют это, чтобы избежать мошенничества для многократных представлений государственному агентству. ИМО, это не эффективный внутренний контроль, и он имеет ограниченные возможности для выявления мошенничества в ситуации взаимодействия со сторонними организациями.
Как правило, использование увеличивающегося целочисленного идентификатора (например, IDENTITY) (или GUID - но обычные идентификаторы GUID не увеличиваются таким образом) в качестве суррогатного первичного ключа в таблицах и кластеризации, что помогает повысить производительность SQL Server. Обратите внимание, что значение IDENTITY может быть использовано, но транзакция завершится неудачно или будет отменена, оставляя пробел. Этот пробел обычно не заполняется (хотя это может быть сделано с использованием идентификационной вставки).
Вот некоторые ссылки на COMB ID:
http://jeffreypalermo.com/blog/use-guid-comb-in-your-database-if-you-need-guid-keys-but-don-t-want-to-take-a-big-performance-hit/
http://www.informit.com/articles/article.aspx?p=25862
На самом деле мы немного изменили его, использовали их с CSLA и назвали их SmartGUID. Класс SmartGUID предоставил свойство даты создания. К сожалению, я больше не связан с этим проектом или компанией, поэтому у меня нет доступа к исходному коду, чтобы точно вспомнить нашу технику.