【问题标题】:How do I convert Excel data into a SQL insert?如何将 Excel 数据转换为 SQL 插入?
【发布时间】:2017-06-16 07:19:56
【问题描述】:

我需要将数千个地址上传到门户网站。我无权访问网站本身,必须使用以下 INSERT 语句访问:

INSERT INTO Address (AddressTypeID, Address1,City, State, Zip, Phone, PersonName, DisplayName, IsDefault, StatusID, UserID) 
VALUES ('1', 'SQL Herro st', 'SLC', '42', '84087', '8015957258', 'Bruce Wayne', 'Bruces address', 'False', '1', '3019')

我在 Excel 中有地址,但我真的不知道如何在导入数据时将此代码迭代一千次。

【问题讨论】:

标签: sql sql-server excel merge


【解决方案1】:

根据您使用的服务器,您有不同的选择,但根据您当前的信息,您可以执行以下操作。

  1. 单击第一行中的第一个空列,即如果数据在第 2 行并且所有列从 a 到 k,则选择 L2
  2. 粘贴以下代码

    ="INSERT INTO Address (AddressTypeID, Address1,City, State, Zip, Phone, PersonName, DisplayName, IsDefault, StatusID, UserID) VALUES '"&A2&"', '"&B2&"', '"&C2&"', '"&D2&"', '"&E2&"', '"&F2&"', '"&G2&"', '"&H2&"', '"&I2&"', '"&J2&"', '"&K2&"'"
    
  3. 检查查询是否正确,它是使用a2-k2中的字段计算的)

  4. 复制 -> 仅将特殊值粘贴到下一列,这样您就可以保留代码,但您可以选择所有包含计算结果的行到您的 sql 查询工具中

【讨论】:

  • 在了解了更多关于 SQL 的信息后,对你给我的作品进行了一些调整。谢谢。
  • 您使用的是什么服务器以及您有哪些管理工具?
  • MS SQL Server 和 MS SQL Server Management Studio 作为我的主要工具,但我很确定我把所有东西都埋在了某个地方。 Management Studio 是我在 Citrix 上拥有的唯一工具,因此我可以通过它尽我所能。
  • 我没有服务器管理工​​作室,但是mysql的phpmyadmin有导入csv文件的选项(不过这个和你无关)。但您可以查看以下链接以供将来参考:support.discountasp.net/kb/a1179/…mssqltips.com/sqlservertutorial/203/…
【解决方案2】:

SQL Server Management Studio 将允许您从 Excel 文件中导入数据。这实际上是创建一个临时 SSIS 包来运行您的导入。

  1. 右键单击要导入数据的数据库。
  2. 检查您的列设置并确保所有数据类型都正确。
  3. 在菜单中选择“任务”,然后找到“导入数据”
  4. 在数据源下拉菜单中,您可以选择“Microsoft Excel”
  5. 设置文件路径,然后点击下一步
  6. 选择 SQL Native 客户端作为您的数据源,它应该默认为您右键单击的服务器和数据库
  7. 您可以导入现有表或创建新表并配置映射。
  8. 运行该过程并检查是否有任何错误。

现在,一些警告。为了从 Excel 文件导入,您需要安装 Microsoft.ACE.OLEDB 驱动程序。我也遇到过 Excel 中的数据类型转换和其他类似问题。

当我需要导入 Excel 时,我通常会将其转换为 CSV,因为这样更简单。就像在 Excel 应用程序中将文档另存为 CSV 一样简单。然后只需将上面的第一步更改为平面文件导入即可。

在进行任何导入时,最好仔细检查导入时的列设置。对于 CSV 文件,至少您可以通过解析某些行来猜测数据类型。这通常做得很好,但我经常需要稍微清理一下。就像将浮点数更改为小数并在字符串上设置更大的长度以避免任何截断错误。

【讨论】:

  • 是的,截断错误可能真的很无聊。而且来自 SSIS 的错误消息也不是很有帮助,尤其是在尝试导入大量数据时。因此,请确保有足够的时间进行此练习!
【解决方案3】:

之前我已经创建了 excel VBA 宏,它会自动从输入表生成 sql 语句,前提是输入表的格式正确(基本上 excel 标题匹配 sql 列)

【讨论】:

  • 这个答案没有解决这个问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2017-08-20
  • 1970-01-01
  • 1970-01-01
  • 2014-06-09
  • 2023-03-25
  • 1970-01-01
相关资源
最近更新 更多