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

Откуда:
Сообщений: 767
Коллеги, приветствую!
Помогите советом.
Имеется некий хмл файл - выгрузка из кассового аппарата.
Он содержит набор чеков с расшифровкой:
Чек - позиция - дополнительные опции позиции
|
Свойства чека.

Гружу их через sqlxmlbulkload в соответствующие таблицы с автоинкрементными ключами.
Существует ли возможность отловить какие id были загружены из конкретного файла?
Id таблицы чеков, разумеется.
3 май 18, 20:35    [21385819]     Ответить | Цитировать Сообщить модератору
 Re: Как получить id только что вставленных sqlxmlbulkload записей?  [new]
Kopelly
Member

Откуда: Красноярск
Сообщений: 289
uaggster,

Output?
4 май 18, 04:56    [21386114]     Ответить | Цитировать Сообщить модератору
 Re: Как получить id только что вставленных sqlxmlbulkload записей?  [new]
uaggster
Member

Откуда:
Сообщений: 767
Kopelly, нет.
Кстати, и с помощью output id только что вставленных автоинкрементов - фиг получишь без извращений с merge.
Да и парсить с помощью sql хмли не хочется, они большие, по гигабайту+.

sqlxmlbulkload - это немного из другой оперы.
Я думал, может есть какой-нибудь способ вставлять в отдельную таблицу что-то типа "имя-файла" - "id только что вставленных в другую таблицу".
Как только это описать в схеме, не понимаю.
4 май 18, 07:55    [21386170]     Ответить | Цитировать Сообщить модератору
 Re: Как получить id только что вставленных sqlxmlbulkload записей?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30783
uaggster
Я думал, может есть какой-нибудь способ вставлять в отдельную таблицу что-то типа "имя-файла" - "id только что вставленных в другую таблицу".
Как только это описать в схеме, не понимаю.
Проблема не в том, как описать, а в том, как получить id только что вставленных записей.

Единственный вариант - в исходных данных нужно иметь какой то идентификатор записи, и + вставлять в таблицу имя файла.
Если в таблице сделать поле с именем файла нельзя, то только через промежуточную таблицу.
4 май 18, 09:53    [21386433]     Ответить | Цитировать Сообщить модератору
 Re: Как получить id только что вставленных sqlxmlbulkload записей?  [new]
Владислав Колосов
Member

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

конечно существует - нумеруйте записи сами. Откажитесь от автонумерации.
4 май 18, 11:23    [21386756]     Ответить | Цитировать Сообщить модератору
 Re: Как получить id только что вставленных sqlxmlbulkload записей?  [new]
лолл
Member

Откуда:
Сообщений: 450
Как вариант, sqlxmlbulkload поддерживает режим FireTriggers = True, при котором срабатывают триггеры.
4 май 18, 13:49    [21387330]     Ответить | Цитировать Сообщить модератору
 Re: Как получить id только что вставленных sqlxmlbulkload записей?  [new]
aleks222
Member

Откуда:
Сообщений: 854
uaggster
sqlxmlbulkload - это немного из другой оперы.
Я думал, может есть какой-нибудь способ вставлять в отдельную таблицу что-то типа "имя-файла" - "id только что вставленных в другую таблицу".
Как только это описать в схеме, не понимаю.


sqlxmlbulkload может обеспечивать связь таблиц для иерархически вложенных таблиц.

Учи атрибут sql:relationship.
4 май 18, 16:53    [21388107]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить