是否可以在没有文件的情况下使用sql server大容量插入?
好奇这是否可能:应用服务器和数据库服务器生活在不同的地方(显然)。应用服务器当前生成一个用于sql server大容量插入的文件 这要求数据库和应用服务器都能够看到位置,这使得在不同的环境中配置更加困难 我想知道的是:在这种情况下是否可以绕过文件系统?也许我可以将数据传递给sql server并让它生成文件 我使用的是sql server 2008,如果这有什么不同的话是否可以在没有文件的情况下使用sql server大容量插入?,sql,sql-server,bulkinsert,Sql,Sql Server,Bulkinsert,好奇这是否可能:应用服务器和数据库服务器生活在不同的地方(显然)。应用服务器当前生成一个用于sql server大容量插入的文件 这要求数据库和应用服务器都能够看到位置,这使得在不同的环境中配置更加困难 我想知道的是:在这种情况下是否可以绕过文件系统?也许我可以将数据传递给sql server并让它生成文件 我使用的是sql server 2008,如果这有什么不同的话 谢谢 我认为使用SQL Server的bulkcp工具无法做到这一点,但如果您的应用程序是使用.NET编写的,则可以使用Sys
谢谢 我认为使用SQL Server的bulkcp工具无法做到这一点,但如果您的应用程序是使用.NET编写的,则可以使用System.Data.SqlClient.SqlBulkCopy类从数据表(或您可以使用SqlDataReader访问的任何数据源)大容量插入行。来自大容量插入文档:
BULK INSERT
[ database_name. [ schema_name ] . | schema_name. ] [ table_name | view_name ]
FROM 'data_file'
FROM“data_file”不是可选的,指定为:
“数据文件”
包含要导入到数据库中的数据的数据文件的完整路径
指定的表或视图。批量插入
可以从磁盘导入数据(包括
网络、软盘、硬盘和
等等)
数据文件必须指定有效路径
从安装SQL server的服务器
跑步如果数据_文件是远程文件
文件,指定通用命名
约定(UNC)名称。有一个UNC名称
形式
\Systemname\ShareName\Path\FileName。
例如
\SystemX\DiskZ\Sales\update.txt
您的应用程序可以直接使用满足性能需求的任何方法进行插入。您的意思是使用
IDataReader
。除此之外,让类通过读取数组中的信息来实现IDataReader非常容易。如果您想在SQL数据库中存储一组存储在数组中的信息,这是一个很好的方法。@Slaks,是的,我说得太具体了。这太完美了。我现在正在使用它,并获得了巨大的性能提升。