需求:1.客户提供的excel表和数据库中的表结构总是有一些差距,id的生成,各种字段的关联等等

2.

如何在Excel中生成Guid。

1.在Excel的宏中执行以下代码:

Private Declare PtrSafe Function CoCreateGuid Lib "ole32" (id As Any) As Long

    Private Function CreateGUID() As String

        Dim id(0 To 15) As Byte

        Dim Cnt As Long, GUID As String

        If CoCreateGuid(id(0)) = 0 Then

            For Cnt = 0 To 15
CreateGUID = CreateGUID + IIf(id(Cnt) < 16, "0", "") + Hex$(id(Cnt))
Next Cnt CreateGUID = Left$(CreateGUID, 8) + Mid$(CreateGUID, 9, 4) + Mid$(CreateGUID, 13, 4) + Mid$(CreateGUID, 17, 4) + Right$(CreateGUID, 12) Else MsgBox "Error while creating GUID!" End If End Function

2.写一些Excel函数去找对应的关系。

=IF(ISNA(VLOOKUP($O3,域字典!A:B,2,FALSE)),"NULL",VLOOKUP($O3,域字典!A:B,2,FALSE))

3.把excel中的数据拷贝到数据库中。

思路:1.根据一些特定列判断数据库中的列是否有重复的

select ''''+min(id)+''',' from 表名
where 列名 in
(
select 列名 from
(
select 列名 from 表名
where 列名 in
(
select 列名 from 表名
group by 列名
having count(*)>1
)
)as b group by 列名,列名
having count(*)>1
) group by 列名,列名

2.去除重复的

delete from 表名
where id in ( )

3.查找原来的表和临时表

select p.* from 原表  p join
临时表 pn on 条件

4.修改数据执行update语句(数据不一样时才修改)

5.执行添加操作

insert into 原表
select *--,''
from 临时表
where id not in
(
select pn.id from 原表 p join
临时表 pn on 条件
)

附件一.复制表结构

select * into  [dbo].要复制的表  from [dbo].原有的表

附件二.删除数据结构 (尽量不要用)

truncate table 表名

Sqlserver在现有数据库中插入数据的更多相关文章

  1. 向Oracle数据库中插入数据出错:ORA-01036 无效的变量名或数据

    向Oracle数据库中插入数据出错: 经过排查,因为Update数据时没有出错,所以OracleHelper没有问题: 看异常信息提示:无效的变量和数据,应该是SQL语句的问题,调试时所传的实例Use ...

  2. mysql数据库中插入数据INSERT INTO SET的优势

    往mysql数据库中插入数据.以前常用 INSERT INTO 表名 (列名1,列名2…) VALUES(列值1,列值2); 如果在PHP程序中,就会写成如下示例(往商品库里增加商品) $sql = ...

  3. mongodb数据库中插入数据

    mongodb数据库中插入数据 一:connection 访问集合: 在mongodb数据库中,数据是存储在许多数据集合中,可以使用数据库对象的collection方法访问一个集合.该方法使用如下: ...

  4. 以使用QSqlQuery向数据库中插入数据为例,做一个小结

    背景: 最近在使用Qt+SQLite写一个本地数据库管理程序(使用者不懂SQL),在写向数据库中插入数据的 相关的函数时,我遇到了几个问题(暂时就这些): 1.向指定字段插入指定数据时,读取到的数据都 ...

  5. MyBatis框架的insert节点-向数据库中插入数据

    需求:使用mybatis框架中的insert元素节点向数据库中插入数据 UserMapper.xml UserMapper.java 编写测试方法: @Test public void testAdd ...

  6. [oracle] 如何使用myBatis在数据库中插入数据并返回主键

    在MyBatis中,希望在Oracle中插入数据的同时返回主键值,而非插入的条数. ① oracle使用 selectKey. U_USER_INFO_SEQ 是在数据库中定义好的这张表关联的序列se ...

  7. 解决getJdbcTemplate往oracle数据库中插入数据返回主键出错问题

    我们使用Spring中的JdbcDaoSupport往Mysql中插入数据并返回主键代码,我们使用的mysql数据库,主键在数据库中设置为自增长:该类继承自JdbcDaoSupport,所以能直接使用 ...

  8. 数据库中插入数据时发生ora-00984错误

    操作Oracle数据库,插入数据时显示:ORA-00984列在此处不允许错误,如下图所示: 出现的原因是由于,在插入字符或字符串型字段时.如果插入的数据是纯数字,则不会有错误:如果出现字符,则会报OR ...

  9. JDBC向数据库中插入数据

    新建数据库,并插入相关数据. create database bbs; use bbs; create table article ( id int primary key auto_incremen ...

随机推荐

  1. js new关键字

    实现new 关键字只需4步 1. 声明一个对象: 2. 把这个对象的__proto__ 指向构造函数的 prototype; 3. 以构造函数为上下文执行这个对象: 4. 返回这个对象. 简洁的代码示 ...

  2. 洛谷SP16549 QTREE6 - Query on a tree VI(LCT)

    洛谷题目传送门 思路分析 题意就是要维护同色连通块大小.要用LCT维护子树大小就不说了,可以看看蒟蒻的LCT总结. 至于连通块如何维护,首先肯定可以想到一个很naive的做法:直接维护同色连通块,每次 ...

  3. 【题解】 [HNOI2009] 最小圈 (01分数规划,二分答案,负环)

    题目背景 如果你能提供题面或者题意简述,请直接在讨论区发帖,感谢你的贡献. 题目描述 对于一张有向图,要你求图中最小圈的平均值最小是多少,即若一个圈经过k个节点,那么一个圈的平均值为圈上k条边权的和除 ...

  4. CRM 报表导出excel时指定sheet名

    如图所示,设置PageName即可: 这样导出excel时,sheet的名就有了:

  5. 【转】在windows中使用Intellij Idea时选择自定义的64位JVM

    原文地址:https://www.iflym.com/index.php/code/201404190001.html 本文英文原文自:https://intellij-support.jetbrai ...

  6. python之旅:网络编程

    一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频 ...

  7. springboot整合mybatis中的mapper不影响使用,但是总是提示红线

    解决方案: 如图:

  8. Java基础-变量的定义以及作用域详解

    Java基础-变量的定义以及作用域详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字面量 常量(字面量)表示不能改变的数值(程序中直接出现的值).字面量有时也称为直接量,包 ...

  9. angularJs实现下拉框多选

    话不多说,直接上干货. 肯定需要下拉选插件.必须引入的是   注意 先后顺序 select2.css select2-bootstrap.css select2.min.js angular.min. ...

  10. SpringMvc数据校验@Valid等注解的使用与工具类抽取

    最近在重构老项目的代码,发现校验入参占用了很多代码,之前我对这一块的认识局限于使用StringUtils等工具来多个if块进行判断,代码是没什么问题,但是总写这些令人生烦,毕竟写代码也要讲究优雅的嘛, ...