Существует ф-ция identity(), но она может использоваться только в select ... into для населения поля типа автоинкремент в новой таблице. В остальном - через фиктивную таблицу и @@identity или IDENT_CURRENT('table_name'). Кстати, понятно, почему нет подобной универсальной ф-ции. Все з-т от масштаба, для к-го должна вестись непрерывная посл-ть целых чисел. Для данной табл.? Для сессии? Для всех польз-й? Это определяется Вашим приложением, соотв-но, решать, как именно - тоже Вам. К сожалению, соблюсти уникальность для целых чисел гораздо труднее, чем для uniqueidentifier. Да и исчерпываются они быстрее (даже с учетом bigint). Если бы не номер договора, я бы посоветовал newid(). Хотя, черт его знает. Может, guid и в номере договора будет смотреться неплохо
.