|
Про возможность генерировать новые значения чисел в SQL Server 7.0
|
|||
---|---|---|---|
#18+
Скажем надо создать составной номер договора в котором есть буква и счетчик. Проблема в следующем - нужно генерировать число счетчика для его записи, но надо также исключить возможность записи в таблицу одинаковых номеров. Есть ли в SQL Server 7.0 встроеные механизмы для генерации чисел как в InterBase - объект generator и функция gen_id() ? Или всетаки придется извращаться через созданную для этих целей таблицу и блокировать значение счетчика если кто-то к нему уже обратился? Спасибо за внимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2001, 15:52 |
|
Про возможность генерировать новые значения чисел в SQL Server 7.0
|
|||
---|---|---|---|
#18+
Существует ф-ция identity(), но она может использоваться только в select ... into для населения поля типа автоинкремент в новой таблице. В остальном - через фиктивную таблицу и @@identity или IDENT_CURRENT('table_name'). Кстати, понятно, почему нет подобной универсальной ф-ции. Все з-т от масштаба, для к-го должна вестись непрерывная посл-ть целых чисел. Для данной табл.? Для сессии? Для всех польз-й? Это определяется Вашим приложением, соотв-но, решать, как именно - тоже Вам. К сожалению, соблюсти уникальность для целых чисел гораздо труднее, чем для uniqueidentifier. Да и исчерпываются они быстрее (даже с учетом bigint). Если бы не номер договора, я бы посоветовал newid(). Хотя, черт его знает. Может, guid и в номере договора будет смотреться неплохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2001, 14:55 |
|
|
start [/forum/topic.php?fid=46&tid=1827380]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 138ms |
0 / 0 |