Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Insert Into и блокировка 
V
    Опции темы
Martin_8
Дата 27.4.2008, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 16.10.2006
Где: Минск

Репутация: нет
Всего: нет



Здравствуйте, помогите разобраться в следующей ситуации. 
Имеется SQL запрос, который работая через ADOQuery, добавляет информацию в таблицу. Программа представляет собой клиент-серверное приложение. СУБД – SQL Server 2000. Запрос имеет вид:
Код

Insert Into XX (A,B,C) Values (:p_A, :p_B, :p_C)

Таблица XX имеет поля 
Id, A, B, C
Поле Id представляет собой Identity (автоинкремент) , поэтому оно не используется в запросе. 

После выполнения запроса, мне необходимо определить под каким номером (под каким Id) была добавлена эта запись. Изначально я думал, что это можно определить, следующим выбором 
Код

Select max(Id) from XX  

Но в промежутке между запросом Insert Into, и запросом Select определяющем максимальное значение Id, может быть выполнен другой (второй) запрос Insert Into и Select первого запроса сделает выборку изменённых данных.

Подскажите, пожалуйста, как правильно наложить блокировку и как должен выглядеть запрос для моего случая.

PM   Вверх
Itsys
Дата 27.4.2008, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 1
Всего: 34



Код

INSERT INTO jobs (job_desc,min_lvl,max_lvl)
VALUES ('Accountant',12,125)
SELECT @@IDENTITY AS 'Identity'


После выполнения, соответсвенно будет одна колонка с обним значением - вставленного идентификатора - выполняешь, как один запрос.
PM MAIL WWW Skype   Вверх
Martin_8
Дата 27.4.2008, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 16.10.2006
Где: Минск

Репутация: нет
Всего: нет



Itsys, Спасибо за ответ  smile 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0408 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.