【问题标题】:Moving data from Excel to SQL Server table将数据从 Excel 移动到 SQL Server 表
【发布时间】:2013-04-10 06:33:25
【问题描述】:

我有一个非常简单的 excel 表:

我想将此数据放入 SQL Server 中的表中。我还想添加一个包含日期的字段。

最好的方法是什么?

【问题讨论】:

  • 进入 SQL Server Management Studio。右键单击您想要表的数据库,单击Tasks --> Import Data,然后使用导入向导。
  • 你应该把它作为答案,这样我才能接受它
  • 。 .奇怪的评论,因为您已经接受了别人的回答。
  • 我首先阅读并评论了您的评论。然后我阅读了其他答案

标签: sql sql-server excel date


【解决方案1】:

打开你的 SQL 服务器界面软件,将日期字段添加到表格中。

进入excel,添加日期列,复制excel数据。

转到您的 SQL 服务器界面软件并使用该功能从剪贴板导入数据。 (具有此功能的 SQL 服务器接口软件例如 Database4.net,但如果您有另一个具有该功能的软件包,请使用它。)


或者使用带有 DOA 或 ADO 的 VBA 与 SQL 服务器数据库交互,并使用 SQL 语句添加字段并将数据复制到表中

【讨论】:

  • 我没有对你投反对票,但我猜是因为你的答案太模糊而无用:它可以概括为“找到一个可以导入数据并使用它的工具”。 “SQL 服务器接口软件”是什么意思?什么是“数据库4”?您说“使用功能导入数据”,但哪个功能是?
  • 啊,可能就是这样。好吧,我不清楚您是否可以使用 SQL Server Management Studio,所以我保持了一般性。
  • 另一个反对票,显然人们认为它比我更模糊。虽然我认为它与公认的答案非常相似。
【解决方案2】:

选项 1:

在 IDataReader 中读取数据,然后调用存储过程插入数据。

http://granadacoder.wordpress.com/2009/01/27/bulk-insert-example-using-an-idatareader-to-strong-dataset-to-sql-server-xml/

当我有 ~~alot~~ 要导入的行并且我想在数据库之外验证它们时,我会使用上述方法。

选项 2:

http://support.microsoft.com/kb/321686

或搜索:

Select  FROM OPENDATASOURCE Excel

选项 N:

还有其他选择。

这取决于你喜欢什么,你想投入多少时间,是“一次性”还是你必须每天处理 333 个文件。

【讨论】:

    【解决方案3】:

    您可以先在 SQL Server 中使用添加的字段创建表,然后使用 Mangement Studio 中的导入向导导入 excel 文件。或者您在导入任务期间创建表,稍后添加新字段。

    【讨论】:

    • 只是补充一下,第二句是通过右键数据库->任务->导入数据来完成的...从这里你可以选择一个Excel文档,SSMS会智能地导出数据类型根据您在电子表格中的数据。即,如果 Excel 中的列是“货币”类型,它将使用“货币”类型创建。
    【解决方案4】:

    在 SQL Server 中创建一个表,其字段数与电子表格中的字段数相同。

    在 SQL Server Management Studio 对象资源管理器中,您可以右键单击您创建的表并选择“编辑前 200 行”。突出显示要在 Excel 中复制的数据,然后右键单击 -> 复制。右键单击 SSMS 编辑表寡妇中第一行左侧的空格并粘贴。

    导入后检查 SQL 表以确保它具有与电子表格相同的行数。

    您可以在导入数据后将日期列添加到 SQL 表中。或者在导入之前将其添加到电子表格中。

    【讨论】:

    • 无法让导入向导工作,但这就像一个魅力!
    【解决方案5】:

    也可以通过创建批处理文件来完成。

    为此,您已经需要在服务器上创建一个与您在 excel 中具有相同数据结构的表。

    现在使用 BCP,您可以从 excel 文件中导入该数据并将其插入到 sql 表中。

    BCP 效用函数

    sqlcmd -S IP -d databasename -U username -P passwd -Q "SQL query mostly it should be truncate query to truncate the created table"
    bcp databasename.dbo.tablename in "Excel file path from where you need to input the data" -c -t, -S Server_IP -U Username -P passwd -b provide batch size
    

    有关 bcp 实用程序的更多选项,您可以参考以下链接:

    https://msdn.microsoft.com/en-IN/library/ms162802.aspx

    【讨论】:

      【解决方案6】:

      我的解决方案是将 .xlsx 转换为 .csv,然后使用 this site 将 .csv 转换为 .sql。然后我在 sql server 中运行了 sql 文件并生成了我的表。

      【讨论】:

      • 这对我有用。将我的 xlsx 转换为 csv 并使用转换器。花了一点时间玩网站上的设置,但不超过 10-15 分钟。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-20
      • 1970-01-01
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多