如何通过.Net代码运行SQL Server的批量复制程序(BCP)实用程序?
答案 0 :(得分:3)
看一下SqlBulkCopy课程。还有another article示例。
答案 1 :(得分:2)
您可以在Command对象
中执行此SQL命令BULK INSERT <TableName> from '<FileName>' with (FORMATFILE='<FmtFile>')
用正确的项目名称替换尖括号中的项目
答案 2 :(得分:1)
以下是一些可能的选择:
...和
答案 3 :(得分:0)
我来晚了,但可能会对其他人有所帮助。 我已经测试了这段代码。
using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ExportLargeData
{
class Program
{
static void Main(string[] args)
{
string strCmdText;
strCmdText = "/C bcp databasname..tablename out D:\\NewFolder\\filename.csv -S .\\ -c -C RAW -T";
重要的是该参数以/ C开头,否则它将不起作用。在-S之后,您必须在我的情况下将SQLServer Instance传递给它的本地变量,这样我才能通过。\
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = strCmdText;
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
process.Close();
process.Dispose();
}
}
}
如果要执行存储过程,则命令为
string proc = "Exec database..storeprocedurename";
string strCmdText = "/C bcp "+ proc + " queryout D:\\NewFolder\\filename.csv -T -c -S .\\";