【发布时间】:2013-12-03 03:08:30
【问题描述】:
我正在使用批量复制将(大)文本文件插入 SQL 服务器。直到现在我一直使用这样的表
创建表 mijndatabase.dbo.invoer ( veld varchar(最大值) ) 然后我使用下面的DOS批处理文件
bcp mijndatabase.dbo.invoer 在 C:\pad\bestand.txt -c -T -S AC01\ST01
或者在 C# 中
string command = @"bcp mijndatabase.dbo.invoer in C:\pad\bestand.txt -c -T -S AC01\ST01"
ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", "/c " + command);
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
using (Process proc = new Process())
{
proc.StartInfo = procStartInfo;
proc.Start();
proc.WaitForExit();
}
当我想将文件批量复制到多字段表中的字段而不拆分输入文件时我应该怎么做所以说我有一个表
创建表 mijndatabase.dbo.invoer2 ( nr int 身份(1,1), veld1 varchar(最大值), veld2 varchar(1000), veld3 varchar(1000) )
并且输入文件应该被批量复制到veld1,其他字段不应该被使用。
怎么办,是否/有额外的参数可以使用?
非常感谢任何帮助。
问候,
约翰
【问题讨论】:
-
这是 NOT SqlBulkCopy,它是 BCP。它们是完全不同的东西(一个是客户端 API 调用,另一个是服务器命令行实用程序)恰好在非常不同的上下文中服务于非常相似的目的。
标签: c# sql-server bcp