我有一个在 SQL 中运行良好的批量插入。
我不知道如何让 SQL 代码在 C# 中工作。
CMD.CommandText = "???"
我尝试了很多想法并不断出错。批量插入如下:
Use Lab2
GO
BULK
INSERT [dbo].[tmpPerson]
FROM 'C:\Temp\Input2.txt'
WITH (
ROWTERMINATOR ='\n');
让您可以使用来自其他源的数据有效地批量加载 SQL Server 表。
Microsoft SQL Server 包括一个名为 bcp 的流行命令提示实用程序,用于将数据从一个表移动到另一个表,无论是在单个服务器上还是在服务器之间。SqlBulkCopy 类允许您编写提供类似功能的托管代码解决方案。还有其他方法可以将数据加载到 SQL Server 表中(例如 INSERT 语句),但 SqlBulkCopy 提供了比它们显着的性能优势。
我使用 Microsoft.SqlServer.management 命名空间中的 Server 对象来做同样的事情。它允许您在命令中使用 GO 字,其中使用 SqlCommand 它期望 SqlCommand 的每个实例代表一个命令。
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
SqlConnection conn = new SqlConnection(sqlConnectionString);
Server server = new Server(new ServerConnection(conn));
server.ConnectionContext.ExecuteNonQuery(script);