Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何使用存储过程向数据库发送大量数据?_.net_Sql_Tsql - Fatal编程技术网

.net 如何使用存储过程向数据库发送大量数据?

.net 如何使用存储过程向数据库发送大量数据?,.net,sql,tsql,.net,Sql,Tsql,我需要一次将大量数据从服务器(使用c#)发送到数据库,例如,所有数据都是“csv”格式,我需要将其一次性传递到数据库。。数据库功能是在数据库中实现的,我的意思是我正在使用存储过程方式(T-SQL) 我试着使用“批量插入”的方式,它的工作。。。但不幸的是,它只适用于一个文件。。。我不需要使用文件,我需要以另一种方式传递它,比如字符串或其他方式,但不是文件 我怎么能做到呢 这是“批量插入”的站点 非常感谢…一种方法是创建xml并将其发送给解释xml的sp 编辑1添加示例代码 创建一个测试表 cr

我需要一次将大量数据从服务器(使用c#)发送到数据库,例如,所有数据都是“csv”格式,我需要将其一次性传递到数据库。。数据库功能是在数据库中实现的,我的意思是我正在使用存储过程方式(T-SQL)

我试着使用“批量插入”的方式,它的工作。。。但不幸的是,它只适用于一个文件。。。我不需要使用文件,我需要以另一种方式传递它,比如字符串或其他方式,但不是文件

我怎么能做到呢

这是“批量插入”的站点


非常感谢…

一种方法是创建xml并将其发送给解释xml的sp

编辑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>'
执行XMLInsertToTestTable ' 1. 名字1 2. 名称2 '
您也可以使用表值参数执行此操作。请在下面提到的链接中查找更多详细信息


希望对您有所帮助。

您有以下选择

  • SQL导出导入向导

  • 以编程方式使用bcp实用程序


  • 不幸的是“Mikael Eriksson”,即使使用xml,我也必须使用文件方式。。。我想避免文件的方式。。。这可能吗??非常感谢“Mikael Eriksson”在这里使用XML不会影响性能,因为XML必须被解析……等等,也许有更有效的方法吗?@Voulnet,是的,它必须被解析。我认为XML不如bcp快,但它比一次添加一行要快得多。唯一确定的方法是自己做一些测试。@Q8Y,为什么/在哪里向存储过程传递xml时需要文件?当你说数据库功能在数据库中实现时,你的确切意思是什么?他说他使用存储过程。看来他想从ASP.NET批量发送到存储过程。我的意思是,我正在使用存储过程…是的。。。那么SQL 2005呢??这些功能在2005年也可用吗??而且,非常感谢;)表值参数不适用于SQLServer2005,我认为SQLServer2005应该使用xml。