Назад | Перейти на главную страницу

ВЫБРАТЬ из встроенных значений CSV в MS SQL

Иногда я получаю разовые запросы на изменение некоторых данных, и запрос приходит с некоторыми значениями в CSV. Есть ли способ быстро и легко обрабатывать произвольный CSV как источник таблицы или строки, даже как встроенные данные?

ЭГ, могу я сделать что-нибудь вроде:

SELECT * FROM SomeSpecialCommand('
147074,13
153987,16
147075,3
176405,16
176437,25
176436,14
176406,14
176439,13
176407,13
') as MyInlineCSV

Это вызвало запрос на изменение уровней запасов для ~ 100 единиц, и мне был предоставлен CSV с номером SKU и количеством (как указано выше).

Вы бы хотели использовать что-то, что называется определяемая пользователем функция с табличным значением. По сути, вы создадите функцию, которая принимает один параметр nvarchar (max) и создает таблицу, которая возвращается из ввода CSV. Здесь можно использовать буквально десятки подходов (с использованием таблицы чисел, с использованием типа XML, с использованием циклов и т. Д. И т. Д.), Но это было тщательно задокументирован и протестирован некоторыми умными ребятами из Sql, так что вместо этого я просто укажу вам туда. Обязательно прочтите также раздел комментариев, поскольку существуют альтернативные решения и результаты тестирования для разных размеров данных, сред и т. д. - просто выберите то, что лучше всего подходит для вас.

Обязательно ли использовать sql-сервер?

Есть DBD :: CSV для Perl, который решит простые модификации, которые не требуют извлечения данных из других таблиц, уже находящихся в вашей базе данных.

К сожалению, вы не можете этого сделать. Вы можете создать связанный сервер, который указывает на файл Excel. Вы можете использовать его в качестве связанного с «служебным» сервером и сохранять случайные файлы как соответствующий файл .xls, и вы сможете выбирать из списка.