Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как сделать авто инкрементное поле в таблице не прибегая к свойству identity?  [new]
spair2k
Member

Откуда: Apsheronsk
Сообщений: 39
Где взять описание модели создания инкремента на таблице без использования свойства Identity. Я помню, что там создаются отдельные таблицы, кажется используются тригеры, но точных подробостей не помню. Заранее благодарю...
14 сен 05, 16:45    [1878104]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать авто инкрементное поле в таблице не прибегая к свойству identity?  [new]
Брюлик
Member

Откуда:
Сообщений: 690
CREATE TABLE #Test (col INT NOT NULL PRIMARY KEY)
INSERT INTO #Test VALUES (1)

INSERT INTO #Test SELECT COALESCE(MAX(Col),0)+1 FROM Table WITH (UPDLOCK,HOLDLOCK)
14 сен 05, 17:01    [1878195]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать авто инкрементное поле в таблице не прибегая к свойству identity?  [new]
??
Guest
Если вы хотите, чтобы инкремент срабатывал на вставку сам, как это делает identity, вешайте триггер, в котором вам надо пронумеровать все вставленные поля (их может быть больше одного).

Если вы готовы при вставке генерировать номера вручную, то создайте таблицу с числовым полем счетчика, в одной транзакции выбираете счетчик, вставляете в нужное место и увеличиваете счетчик.
14 сен 05, 17:06    [1878227]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать авто инкрементное поле в таблице не прибегая к свойству identity?  [new]
Константин Заровный
Member

Откуда: Волгодонск
Сообщений: 954
Посмотри может тебе это поможет

http://www.osp.ru/win2000/sql/2001/04/865.htm
14 сен 05, 20:25    [1878777]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить