如何将Excel数据转换为SQL插入语句?

12

我需要将几千个地址上传到一个网站门户。我无法访问该网站本身,必须使用以下“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 服务器,以发送 T-SQL 查询(例如插入查询)进行执行:http://stackoverflow.com/questions/30289095/connection-to-a-microsoft-sql-database-via-vba-adodb-with-the-lowest-risk-to-h/30299444#30299444 - Ralph
有时候我会使用这个工具 https://sqlizer.io/#/ - Lewis Florez R
4个回答

18

根据您正在使用的服务器,您有不同的选择,但使用您提供的信息,您可以执行以下操作:

  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之后,对你给我的内容稍作调整就可以了。谢谢。 - Justin Burgard
你使用的是哪个服务器?你有哪些管理工具? - davejal
我使用MS SQL Server和MS SQL Server Management Studio作为我的主要工具,但我相信我已经把所有东西都埋在某个地方了。由于Management Studio是我在Citrix上唯一拥有的工具,因此我尽可能地通过它完成所有操作。 - Justin Burgard
我没有服务器管理工作室,但是mysql的phpmyadmin有导入csv文件的选项(但这与您无关)。但是您可以查看以下链接以供将来参考:https://support.discountasp.net/kb/a1179/how-to-import-a-csv-file-into-a-database-using-sql-server-management-studio.aspx和https://www.mssqltips.com/sqlservertutorial/203/simple-way-to-import-data-into-sql-server/。 - davejal

1
SQL Server Management Studio能够让您从Excel文件中导入数据。实际上,它会创建一个临时的SSIS包来运行您的导入操作。
  1. 右键单击要将数据导入的数据库。
  2. 检查列设置并确保所有数据类型都是正确的。
  3. 在菜单中选择“任务”,然后找到“导入数据”
  4. 在数据源下拉列表中,可以选择“Microsoft Excel”
  5. 设置文件路径,然后单击下一步
  6. 选择SQL Native client作为数据源,并且应该默认为您右键单击的服务器和数据库
  7. 您可以将其导入到现有表格或创建新表格并配置映射。
  8. 运行过程并检查是否有任何错误。
现在,需要注意的是,为了从Excel文件中导入,您需要安装Microsoft.ACE.OLEDB驱动程序。我也遇到了从Excel进行数据类型转换等问题的情况。
当我需要进行Excel导入时,通常会将其转换为CSV文件,因为那样会简单得多。只需在Excel应用程序中将文档保存为CSV即可。然后,只需将第一步更改为导入平面文件即可。

在进行任何导入操作时,仔细检查导入的列设置是个好主意。对于CSV文件,你可以让导入程序通过解析一些行来猜测数据类型。这通常做得很好,但我经常需要稍微清理一下。例如将浮点数更改为小数,并设置较大的字符串长度以避免截断错误。


是的,截断错误可能会让人非常烦恼。而且 SSIS 的错误信息通常并不是很有帮助,特别是在尝试导入大量数据时。因此,请确保为此练习留出充足的时间! - Carsten Massmann

1

在Excel中,您可以在任何列中使用以下公式 ="("&A2&","&B2&","&E2&","&F2&","&G2&"),"

然后通过"CTRL" + 向下滚动复制格式以获取具有相同格式的所有数据。 对于日期数据,您可以访问此网站以获取更多信息: [a link]https://www.excel-exercise.com/title-with-date-excel/


0

之前我创建了Excel VBA宏,可以自动生成SQL语句,只要输入表格格式正确(基本上是Excel标题与SQL列匹配)


2
这个回答没有解决问题。您可以在帮助中心找到更多关于如何编写好的答案的信息。 - Spinner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接