Передача набора данных в хранимую процедуру SQL Server - PullRequest
2 голосов
/ 02 июля 2010

Здесь я сталкиваюсь с проблемой, что я хочу передать набор данных в хранимую процедуру SQL Server, и у меня нет никакого представления об этом, и нет альтернативного решения (я так думаю), чтобы сделать это, позвольте мнечто я хочу ...

У меня есть файл Excel для чтения, я прочитал его успешно, и все данные из этой книги Excel импортируются в набор данных.Теперь эти данные необходимо вставить в две разные таблицы, и в книге Excel слишком много строк, поэтому не стоит запускать их из кода, поэтому я хочу передать этот набор данных в хранимую процедуру, а затем ........

пожалуйста, предложите мне какое-нибудь решение.

1 Ответ

2 голосов
/ 02 июля 2010

Не зная, с какой версией базы данных вы работаете, вот несколько советов:

  • если вам нужно регулярно читать файл Excel и разбивать его на две или более таблицы, возможно, вам нужно использовать что-то вроде SQL Server Integration Services для этого. С SSIS вы сможете достичь этого довольно легко

  • вы можете загрузить файл Excel во временную промежуточную таблицу, а затем прочитать данные из этой промежуточной таблицы в вашей хранимой процедуре. Это работает, но становится немного грязно, когда есть вероятность, что несколько одновременных вызовов должны быть обработаны

  • если вы используете SQL Server 2008 и более поздние версии, вам следует взглянуть на табличные параметры - вы в основном загружаете файл Excel в .NET DataSet и передаете его в хранимый процесс в качестве специального параметра. Прекрасно работает, но не было доступно в SQL Server до выпуска 2008 года

  • , поскольку вы используете SQL Server 2005, а параметры с табличными значениями недоступны, вы можете обратиться к превосходной статье Эрланда Соммарскога Массивы и списки в SQL SErver 2005 - в зависимости от насколько большой ваш набор данных, один из его подходов может работать для вас (например, передача в виде XML, который вы анализируете / уничтожаете внутри хранимого процесса)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...