Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Возвращаемые значения в MS SQL Compact 3.5


Автор: asure 24.3.2009, 07:56
Здравствуйте. Появилась потребность в использовании SQL Server Compact и возникла небольшая проблема. При вставке в таблицу данных, мне необходимо вернуть значение первичного ключа вставленной записи, как это можно сделать? В SQL Server я использовал хранимые процедуры с параметром для этого, а вот как быть с SQL Server Compact?
Заранее благодарен, с уважением Александр.

Автор: Anikmar 25.3.2009, 10:50
Можно так:
SELECT Max(ID_Field) FROM Table
А в компакте встроенная переменная @@Identity (надеюсь правильно написал) есть? тогда можно к ней обратиться

Автор: former 26.3.2009, 00:28
Цитата(Anikmar @  25.3.2009,  10:50 Найти цитируемый пост)
Можно так:
SELECT Max(ID_Field) FROM Table

Если после добавления последних записей их удалили, то этот вариант не прокатит.

Автор: Anikmar 26.3.2009, 01:14
Цитата(former @  26.3.2009,  00:28 Найти цитируемый пост)
Если после добавления последних записей их удалили, то этот вариант не прокатит. 

Почему? Не понял?

Этот метод обычно я применял сразу после вставки новой записи - для того, чтобы узнать ее ID. Каким образом после вставки сразу будет удаление? Если вставка не срослась (например, пользователь отменил сохранение изменений), то и зачем тогда ключ искать, если запись не добавилась?

Автор: former 26.3.2009, 10:22
Anikmar, не внимательно прочитал, что сразу после добавления. smile  Я имел виду в случае, если мы, допустим, добавляли записи, выполняли другие операции, а потом нужно узнать номер следующей записи при добавлении.

Автор: Anikmar 26.3.2009, 11:20
Цитата(former @  26.3.2009,  10:22 Найти цитируемый пост)
Anikmar, не внимательно прочитал, что сразу после добавления.   Я имел виду в случае, если мы, допустим, добавляли записи, выполняли другие операции, а потом нужно узнать номер следующей записи при добавлении. 

Бесспорно - после удаления ерунда получится

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)