异常SqlBulkCopy ColumnsMapping

时间:2014-12-12 02:59:37

标签: .net sql-server vb.net

我尝试使用SqlBulkCopy在不同的数据库和架构之间迁移数据。 这是sql命令从源数据库获取数据:

SELECT TOP 2000000 SUBSTRING(HANM002001,1,8) AS HANM002001,
               (HANM002004 +' '+HANM002005) AS HANM002004,
               HANM002007,
               '' AS col4,
               HANM002008,
               (HANM002009+' '+HANM002010) AS HANM002009,
               SUBSTRING(HANM002013,1,13) AS HANM002012,
               SUBSTRING(HANM002013,1,13) AS HANM002013,
               '' AS col9,
               0 AS col10,
               0 AS col11,
               HANM002027,
               HANM002030,
               HANM002033,
               '' AS col15,
               '' AS col16,
               '' AS col17,
               '' AS col18,
               '' AS col19,
               '' AS col20,
               '' AS col21,
               '' AS col22,
               '' AS col23,
               0 AS col24,
               0 AS col25,
               '' AS col26,
               HANM002INS

来自HAN07M002SHIIRE

这是目标表架构:

CREATE TABLE [dbo].[mst仕入先](
[仕入先コード] [varchar](8) NOT NULL,
[仕入先名] [nvarchar](40) NULL,
[仕入先名カナ] [nvarchar](30) NULL,
[仕入先略称] [nvarchar](14) NULL,
[郵便番号] [varchar](10) NULL,
[住所] [nvarchar](100) NULL,
[電話番号] [varchar](13) NULL,
[FAX番号] [varchar](13) NULL,
[担当者コード] [varchar](6) NULL,
[税計算区分] [smallint] NULL,
[端数区分] [smallint] NULL,
[締日] [smallint] NULL,
[入金日] [smallint] NULL,
[入金サイクル] [smallint] NULL,
[銀行コード] [varchar](4) NULL,
[支店コード] [varchar](3) NULL,
[口座番号] [varchar](7) NULL,
[受取人名] [nvarchar](30) NULL,
[業者コード] [varchar](6) NULL,
[買掛仕入コード] [varchar](6) NULL,
[買掛経費コード] [varchar](6) NULL,
[現金コード] [varchar](6) NULL,
[表示区分] [smallint] NULL,
[削除フラグ] [smallint] NULL,
[更新者] [varchar](2) NULL,
[更新日] [datetime] NULL,

PRIMARY KEY CLUSTERED (     [仕入先コード] ASC )WITH(PAD_INDEX = OFF,STATISTICS_NORECOMPUTE = OFF,IGNORE_DUP_KEY = OFF,ALLOW_ROW_LOCKS = ON,ALLOW_PAGE_LOCKS = ON)ON [PRIMARY] )[主要]

这是代码映射:

Using sqlCopy As SqlBulkCopy = New SqlBulkCopy(destinationConnection.ConnectionString)
                    sqlCopy.ColumnMappings.Add("HANM002001", "仕入先コード")
                    sqlCopy.ColumnMappings.Add("HANM002004", "仕入先名")
                    sqlCopy.ColumnMappings.Add("HANM002007", "仕入先名カナ")
                    sqlCopy.ColumnMappings.Add("col4", "仕入先略称")
                    sqlCopy.ColumnMappings.Add("HANM002008", "郵便番号")
                    sqlCopy.ColumnMappings.Add("HANM002009", "住所")
                    sqlCopy.ColumnMappings.Add("HANM002012", "電話番号")
                    sqlCopy.ColumnMappings.Add("HANM002013", "FAX番号")
                    sqlCopy.ColumnMappings.Add("col9", "担当者コード")
                    sqlCopy.ColumnMappings.Add("col10", "税計算区分")
                    sqlCopy.ColumnMappings.Add("col11", "端数区分")
                    sqlCopy.ColumnMappings.Add("HANM002027", "締日")
                    sqlCopy.ColumnMappings.Add("HANM002030", "入金日")
                    sqlCopy.ColumnMappings.Add("HANM002033", "入金サイクル")
                    sqlCopy.ColumnMappings.Add("col15", "銀行コード")
                    sqlCopy.ColumnMappings.Add("col16", "支店コード")
                    sqlCopy.ColumnMappings.Add("col17", "預金種目")
                    sqlCopy.ColumnMappings.Add("col18", "口座番号")
                    sqlCopy.ColumnMappings.Add("col19", "受取人名")
                    sqlCopy.ColumnMappings.Add("col20", "業者コード")
                    sqlCopy.ColumnMappings.Add("col21", "買掛仕入コード")
                    sqlCopy.ColumnMappings.Add("col22", "買掛経費コード")
                    sqlCopy.ColumnMappings.Add("col23", "現金コード")
                    sqlCopy.ColumnMappings.Add("col24", "表示区分")
                    sqlCopy.ColumnMappings.Add("col25", "削除フラグ")
                    sqlCopy.ColumnMappings.Add("col26", "更新者")
                    sqlCopy.ColumnMappings.Add("HANM002INS", "更新日")
                    'sqlCopy.NotifyAfter = importTbl.Rows.Count
                    sqlCopy.DestinationTableName = Constant.ShiiresakiMst
                    sqlCopy.BulkCopyTimeout = 0
                    sqlCopy.WriteToServer(sourceReader)
                End Using

但抛出异常:给定的ColumnMapping与源或目标中的任何列都不匹配。

请帮忙。

感谢。

1 个答案:

答案 0 :(得分:0)

目标表只有26列但您在列映射中提到了27列。