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

Откуда:
Сообщений: 749
Народ,Кто посоветует как коректней создавать инкрементально уникальный ключ, таки обоазом чтобы при обновлеии значения никто из других сессий не успел перехватить сгенерированный конкретной сессией новый ключ
Есть таблица с полем Nr_orders. Одна запись. Identity не используется...
ВОт примерное мое видение, но хочется чтобы была атомарная команда которая обновляетр значение поля и сразу же возвращает новое инкрементальное значение.
Вот примерно вот так:

CREATE PROCEDURE blabla
@incrementvalue int, @newvalue numeric(10) OUTUT
AS
BEGIN TRAN
update newOrder SET nr_orders = (select nr_orders + @incrementvalue FROM NewOrder WHERE id = 1) WHERE id = 1
SET @newvalue = (select nr_orders from newOrder WHERE id = 1)
COMMIT TRAN
RETURN @newvalue

Как можно сразу заполучить зачение @newvalue не используя дополнительный SET ....
Всем спасибо.
12 авг 12, 02:34    [12999608]     Ответить | Цитировать Сообщить модератору
 Re: уникальный ключ...  [new]
aleks2
Guest
newid() или NEWSEQUENTIALID ( )
12 авг 12, 07:36    [12999776]     Ответить | Цитировать Сообщить модератору
 Re: уникальный ключ...  [new]
Valerii
Member

Откуда:
Сообщений: 749
aleks2,
sql 2000!!!! также мне нужно целочисленное значение!!!
12 авг 12, 10:26    [12999833]     Ответить | Цитировать Сообщить модератору
 Re: уникальный ключ...  [new]
Glory
Member

Откуда:
Сообщений: 104751
Изучайте синтакстс

update newOrder SET @newvalue = nr_orders = nr_orders + @incrementvalue WHERE id = 1

Сообщение было отредактировано: 12 авг 12, 10:49
12 авг 12, 10:39    [12999844]     Ответить | Цитировать Сообщить модератору
 Re: уникальный ключ...  [new]
Valerii
Member

Откуда:
Сообщений: 749
Glory,

Я этот вариант пробовал - но он почему-то с небольшой задердкой выполняется
Тем не менее спасибо,
12 авг 12, 11:35    [12999896]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить