是否可以使用没有文件的sql server批量插入?

时间:2010-09-07 18:26:26

标签: sql sql-server bulkinsert

如果可能的话,这很奇怪:应用服务器和数据库服务器位于不同的地方(显然)。应用服务器当前生成一个用于sql server bulk insert的文件。

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

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

我在sql server 2008上,如果这有所不同。

谢谢!

2 个答案:

答案 0 :(得分:12)

我认为你不能用SQL Server的bulkcp工具做到这一点,但如果你的应用是用.NET编写的,你可以使用System.Data.SqlClient.SqlBulkCopy类来批量插入数据表中的行(或者您可以使用SqlDataReader访问的任何数据源。

答案 1 :(得分:1)

有关批量插入的文档:

BULK INSERT 
   [ database_name. [ schema_name ] . | schema_name. ] [ table_name | view_name ] 
      FROM 'data_file' 

FROM'data_file'不是可选的,并且如下指定:

  

'DATA_FILE'       是包含要导入的数据的数据文件的完整路径   指定的表或视图。 BULK INSERT   可以从磁盘导入数据(包括   网络,软盘,硬盘和   等等。)

     

data_file必须指定有效路径   来自SQL Server所在的服务器   运行。如果data_file是远程的   文件,指定通用命名   公约(UNC)的名称。 UNC名称有   表格   \ SYSTEMNAME \共享\路径\文件名。   例如,   \ SystemX \ DiskZ \ SALES \ UPDATE.TXT。

您的应用程序可以使用满足您性能需求的任何方法直接进行插入。