是否可以在没有文件的情况下使用sql server大容量插入?

是否可以在没有文件的情况下使用sql server大容量插入?,sql,sql-server,bulkinsert,Sql,Sql Server,Bulkinsert,好奇这是否可能:应用服务器和数据库服务器生活在不同的地方(显然)。应用服务器当前生成一个用于sql server大容量插入的文件 这要求数据库和应用服务器都能够看到位置,这使得在不同的环境中配置更加困难 我想知道的是:在这种情况下是否可以绕过文件系统?也许我可以将数据传递给sql server并让它生成文件 我使用的是sql server 2008,如果这有什么不同的话 谢谢 我认为使用SQL Server的bulkcp工具无法做到这一点,但如果您的应用程序是使用.NET编写的,则可以使用Sys

好奇这是否可能:应用服务器和数据库服务器生活在不同的地方(显然)。应用服务器当前生成一个用于sql server大容量插入的文件

这要求数据库和应用服务器都能够看到位置,这使得在不同的环境中配置更加困难

我想知道的是:在这种情况下是否可以绕过文件系统?也许我可以将数据传递给sql server并让它生成文件

我使用的是sql server 2008,如果这有什么不同的话


谢谢

我认为使用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,是的,我说得太具体了。这太完美了。我现在正在使用它,并获得了巨大的性能提升。