【问题标题】:Client Data into SQL server客户端数据到 SQL 服务器
【发布时间】:2014-02-11 15:28:04
【问题描述】:

我的客户在 Excel 中给出的数据如下所示:

 |  Sno    | Product Name | Product Type  | Supplier
 --------------------------------------------------- 
 | 1       | Mobile       | Gadgets       | Steve
 | 2       | DataCard     | Internet      | Hauwai

(更多列和行)

我为产品、类型和供应商等设计了一个单独的表,现在我需要将数据导入 SQL Server。我需要在 Excel 表中将产品类型替换为ID,并将供应商名称替换为ID。我怎样才能做到这一点? Excel 工作表有更多的列和行。例如,它有 1000 多种产品类型。

【问题讨论】:

  • @samyi 我手动尝试了..请提供一些建议如何更轻松地做到这一点..

标签: sql-server excel import


【解决方案1】:

我想到的一个解决方案是:

1) 创建 SSIS 包,例如: 来源(将是 excel)> 目的地将是另一个表名称 Producttype、Product、Supplier 等。

Create table ProductType(
        ProductTypeID int identity(1,1),
        ProductType varchar(255)
        )


        Create table Product(
        ProductID int  identity(1,1),
        ProductName varchar(255)
        )


        Create table Supplier(
        SupplierID int  identity(1,1),
        SupplierName varchar(255)
        )

2) 您可以在简单包中使用源 Excel 和目标使用 SQL Server 表。

编辑:

当您将数据转储到目标表中时,您只需要担心来自 Excel 源的实际字段。 ID 是 Identity 字段,将得到妥善处理。

【讨论】:

    【解决方案2】:

    如果这是一次性流程,请使用ACE

    SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;HDR=YES;Database=C:\path\to\file.xls','SELECT * FROM [Sheet1$]')
    

    另一种方法是在 Excel 中打开 xls 并导出为 csv。然后使用BULK INSERT

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      • 2015-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多