![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Аналог интербейсовского генератора в MS SQL 2000
Ihor Osov'yak © (2003-01-21 00:00:00)Сабж, собственно... Если ли он в природе, и если нет - то как попроще симулироать...
Зы - если кто не знает, что такое генератор в ИБ - в первом приближении можно считать, что определенная разработчиком глобальная целочисельная переменная, сохраняющая значение при рестарте базы :-), и при каждом обращении к ней ее знаение инкриментируется/декриментируется на определенное число вне зависимости от контекста транзакций и последующего commit/rollback... Очень удобно для организации генерации действительно уникальных значений для какого-то id, номерации последовательных событий в системе и не только...
Reindeer Moss Eater (2003-01-21 13:35:00) [1]Эмулировать генератор можно созданием таблицы из одного поля и хранимой процедуры
Fiend (2003-01-21 13:29:00) [2]самого по себе генератора как в ИБ нету, это точно!
Но как грится скока серверов, стока и отличий.
Можно например решить проблему триггером, который при добавлении данных будет вычислять какой уникальный идентификатор нужно присвоить к данной строке, он может быть и символьным и числовым.
Да и вообще наивно было бы ожидать, что сервера разных производителей, будут полностью одинаковы по "способностям". Иначе какой в них смысл?
Ihor Osov'yak (2003-01-21 12:38:00) [3]2 stone © (21.01.03 12:15)
см http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=20721
там этот вариант уже рассматривался. По поводу IDENTITY, цитата оттуда:
оно должно быть уникальным в разрезе нескольких таблиц. Пример. Система реестраций чего-то. Для каждого типа событий - своя таблица. Ключевым полем везде сурогатный целочисельный ID. Хотелось бы, чтобы эти ID во всех этих таблицах не повторялись и монотонно возрастали. Во первых, удобно для организации выборки последних событий, во вторых, я вижу "естественный" порядок реестрации событий. Реестрация системного времени на сервере для события само-собой, но это не выход, так как были случаи, когда умельцы-админы изменяли системное время либо по дури, либо с целью исказить порядок реестрации событий....
identity в силу "уникальности в разрезе нескольких таблиц" не идет. Я конечно понимаю, что можно сделать то, что в ER принято называть sub-category, но считайте, что в моем случае это недопустимо "по религиозным убеждениям". в самом деле это не так, но расказывать долго ....
Если подводить итог - народ все же советует отказатся от "религиозных убеждений" и делать все же тот sub-category (полноценный, или слегка облегченный)...
stone (2003-01-21 12:15:00) [4]Есть автоинкримент в свойствах поля называется IDENTITY
Ihor Osov'yak (2003-01-21 11:46:00) [5]Сорри за up, но все же ...