C# 将整个记录BCP到sql server表中的一个字段

C# 将整个记录BCP到sql server表中的一个字段,c#,sql-server,bcp,C#,Sql Server,Bcp,我正在使用bulkcopy将(大型)文本文件插入SQL server。直到现在,我总是用这样的桌子 创建表mijndabase.dbo.invoer ( veld varchar(最大值) ) 然后我使用下面的DOS批处理文件 C:\pad\bestand.txt-C-T-S AC01\ST01中的bcp mijndabase.dbo.invore 或者用C# 如果我想将文件批量复制到多字段表中的一个字段,而不拆分输入文件,比如说我有一个表,我该怎么办 创建表mijndabase.dbo.inv

我正在使用bulkcopy将(大型)文本文件插入SQL server。直到现在,我总是用这样的桌子

创建表mijndabase.dbo.invoer ( veld varchar(最大值) ) 然后我使用下面的DOS批处理文件

C:\pad\bestand.txt-C-T-S AC01\ST01中的bcp mijndabase.dbo.invore

或者用C#

如果我想将文件批量复制到多字段表中的一个字段,而不拆分输入文件,比如说我有一个表,我该怎么办

创建表mijndabase.dbo.invoter2 ( nr int标识(1,1), veld1 varchar(最大值), veld2 varchar(1000), veld3 varchar(1000) )

输入文件应批量复制到veld1,不应使用其他字段

该怎么办?是否有额外的参数可供使用

非常感谢您的帮助

问候,


John使用格式文件跳过不需要的字段。下面是BCP命令的MSDN链接

确保字段具有默认值。标识本身很好,只需为所有其他字段定义

以下是我在BCP/BULK INSERT上写的一些文章

如果你还有问题,就喊一声

我需要一些示例数据和精确的表定义(TSQL)来提供更精确的细节

[--来自用户的包含更多信息的电子邮件--]

我使用下表将数据导入到

 CREATE TABLE [dbo].[t_000_invoerbcp_01]
(
    [volgnr_01] [int] IDENTITY(1,1) NOT NULL,
    [veld_1_01] [varchar](max) NULL,
    [veld_2_01] [varchar](1000) NULL,
    [veld_3_01] [varchar](1000) NULL,
    [veld_4_01] [varchar](1000) NULL,
    [veld_5_01] [varchar](1000) NULL
)
狡猾的DBA修改了用户提供的以下格式文件

10.0
6
1       SQLCHAR         0       0       "\t"     0     volgnr_01          ""
2       SQLCHAR         0       0       "\t"     2     veld_1_01          SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR         0       0       "\t"     0     veld_2_01          ""
4       SQLCHAR         0       0       "\t"     0     veld_3_01          ""
5       SQLCHAR         0       0       "\t"     0     veld_4_01          ""
6       SQLCHAR         0       0       "\r\n"   0     veld_5_01          ""
varchar(MAX)的定义与长度为0的定义相同。见msdn文章

若要跳过字段,请将数据长度和列顺序设置为空。见msdn文章

同样,如果您不想要空值,那么定义默认值是必要的


我希望这个修改后的格式文件适合您。

这不是SqlBulkCopy,而是BCP。它们是完全不同的东西(一个是客户端API调用,另一个是服务器命令行实用程序),恰好在非常不同的上下文中用于非常相似的目的。我不理解你发表的评论。f允许您使用格式化文件。这是跳过字段的关键。抱歉,此条目有误
10.0
6
1       SQLCHAR         0       0       "\t"     0     volgnr_01          ""
2       SQLCHAR         0       0       "\t"     2     veld_1_01          SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR         0       0       "\t"     0     veld_2_01          ""
4       SQLCHAR         0       0       "\t"     0     veld_3_01          ""
5       SQLCHAR         0       0       "\t"     0     veld_4_01          ""
6       SQLCHAR         0       0       "\r\n"   0     veld_5_01          ""