如果可能的话,这很奇怪:应用服务器和数据库服务器位于不同的地方(显然)。应用服务器当前生成一个用于sql server bulk insert的文件。
这要求数据库和应用服务器都能够查看位置,并且在不同的环境中使配置更加困难。
我想知道的是:在这种情况下是否可以绕过文件系统?也许我可以将数据传递给sql server并让它生成文件?
我在sql server 2008上,如果这有所不同。
谢谢!
答案 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。
您的应用程序可以使用满足您性能需求的任何方法直接进行插入。