Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Аналог интербейсовского генератора в 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, но все же ...


Наверх

Титульная страница Поиск, карта сайта Написать письмо