.net 如何使用存储过程向数据库发送大量数据?
我需要一次将大量数据从服务器(使用c#)发送到数据库,例如,所有数据都是“csv”格式,我需要将其一次性传递到数据库。。数据库功能是在数据库中实现的,我的意思是我正在使用存储过程方式(T-SQL) 我试着使用“批量插入”的方式,它的工作。。。但不幸的是,它只适用于一个文件。。。我不需要使用文件,我需要以另一种方式传递它,比如字符串或其他方式,但不是文件 我怎么能做到呢 这是“批量插入”的站点.net 如何使用存储过程向数据库发送大量数据?,.net,sql,tsql,.net,Sql,Tsql,我需要一次将大量数据从服务器(使用c#)发送到数据库,例如,所有数据都是“csv”格式,我需要将其一次性传递到数据库。。数据库功能是在数据库中实现的,我的意思是我正在使用存储过程方式(T-SQL) 我试着使用“批量插入”的方式,它的工作。。。但不幸的是,它只适用于一个文件。。。我不需要使用文件,我需要以另一种方式传递它,比如字符串或其他方式,但不是文件 我怎么能做到呢 这是“批量插入”的站点 非常感谢…一种方法是创建xml并将其发送给解释xml的sp 编辑1添加示例代码 创建一个测试表 cr
非常感谢…一种方法是创建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
'
您也可以使用表值参数执行此操作。请在下面提到的链接中查找更多详细信息
希望对您有所帮助。您有以下选择
不幸的是“Mikael Eriksson”,即使使用xml,我也必须使用文件方式。。。我想避免文件的方式。。。这可能吗??非常感谢“Mikael Eriksson”在这里使用XML不会影响性能,因为XML必须被解析……等等,也许有更有效的方法吗?@Voulnet,是的,它必须被解析。我认为XML不如bcp快,但它比一次添加一行要快得多。唯一确定的方法是自己做一些测试。@Q8Y,为什么/在哪里向存储过程传递xml时需要文件?当你说数据库功能在数据库中实现时,你的确切意思是什么?他说他使用存储过程。看来他想从ASP.NET批量发送到存储过程。我的意思是,我正在使用存储过程…是的。。。那么SQL 2005呢??这些功能在2005年也可用吗??而且,非常感谢;)表值参数不适用于SQLServer2005,我认为SQLServer2005应该使用xml。