使用sublime 同步编辑从excel导入数据到SQL Server数据库
最近经常需要从excel导入数据到SQL Server数据库,使用sublime的同步编辑操作将excel中的数据编辑成SQL语句,这里记录一下。
首先准备一下测试数据,如下
注:这里的.C/.U/.V是备注,录入数据时不需要保留
下面开始使用使用Sublime根据excel数据生成插入数据的SQL(如果数据库还没建表的话,新建表)
1. 将数据第一列拷贝到Sublime
由于这里的数据含有 ', 需要先进行转移,将 ' 替换成 ''。' 替换完成后,移除不需要的 .C/.V/.U
编写正则表达式 [,.]+[CUV]?[^'\n]*$,使用Ctrl + H 替换不需要的信息
处理完成后,得到下面内容
使用 Ctrl + ALL 选中全部内容,然后再使用 Ctrl + Shift + L 开启多行同步编辑,如下
使用Home键,在开头添加单引号,然后使用End键,在行末添加单引号和逗号
2. 使用 Ctrl + N 打开一个新的编辑窗口,将第二列的内容复制到新打开的编辑窗口
注意:文件末尾多了一个空行,需要删掉,不然复制到第一列所在的编辑窗口时会因为行数不一致而出现添加问题
使用Ctrl + ALL 选中第二列全部内容,再回到第一列所在编辑窗口,添加单引号,然后使用Ctrl + V粘贴到两个单引号之间(粘贴之前确保第一列所在编辑窗口处于同步编辑状态)
3. 如果还有其它列的话,重复第2步的操作。这里只有两列,直接进入4
4. 同步编辑多行,加入 括号、逗号等
5. 鼠标单击取消同步编辑,在前面添加 insert into 等,去掉最后一行行末的逗号
注意:
1)需要考虑这种一次插入多行的在对应数据库里是不是存在行数限制,如SQL Server中限制1000行。超过这个数目时,一次只能选择1000及以上行数
2)如果插入数据的SQL脚本需要多次执行,且执行时不重建表,则不能直接使用上面insert into ... values ,这时可以使用 insert into ... select ... where ...来处理,如: