Как я могу отправить много данных в базу данных с помощью хранимой процедуры? - PullRequest
2 голосов
/ 24 января 2011

Мне нужно отправить много данных с сервера (используя c #) в базу данных одновременно, например, все данные в формате 'csv', и мне нужно передать их один раз в базу данных .. базу данных функциональность реализована в базе данных, я имею в виду, что я использую хранимые процедуры (T-SQL) ...

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

как я могу это сделать ??

это сайт для "массовой вставки" http://msdn.microsoft.com/en-us/library/ms188365.aspx

Большое спасибо ...

Ответы [ 3 ]

2 голосов
/ 24 января 2011

Вы также можете использовать Табличные Значения. Более подробную информацию вы найдете по ссылке ниже.

http://blog.sqlauthority.com/2008/08/31/sql-server-table-valued-parameters-in-sql-server-2008/

http://msdn.microsoft.com/en-us/library/bb675163.aspx

Надеюсь, это поможет вам.

0 голосов
/ 24 января 2011

У вас есть следующие варианты

  1. Мастер импорта SQL экспорта

  2. с использованием утилиты bcp программно http://msdn.microsoft.com/en-us/library/ms162802.aspx

0 голосов
/ 24 января 2011

Один из способов - создать xml и отправить его в sp, который интерпретирует xml.

, улучшая производительность вставки ms sql с помощью lazarus

Редактировать1 Добавление примера кода

Создание тестовой таблицы

create table TestTable (Id int, Name nvarchar(50))

Создание хранимой процедуры, которая вставляет из XML в таблицу

create procedure XMLInsertToTestTable
    @Data xml
as
insert into TestTable (Id, Name)
select
    r.r.value('Id[1]', 'int'),
    r.r.value('Name[1]', 'nvarchar(50)')
from @Data.nodes('root/row') r(r)

Вызов процедуры с xmlстрока в качестве аргумента

exec XMLInsertToTestTable
  '<root>
    <row> 
      <Id>1</Id>
      <Name>Name 1</Name>
    </row>    
    <row> 
      <Id>2</Id>
      <Name>Name 2</Name>
    </row>    
  </root>'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...