Sqlserver在现有数据库中插入数据
需求: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在现有数据库中插入数据的更多相关文章
- 向Oracle数据库中插入数据出错:ORA-01036 无效的变量名或数据
向Oracle数据库中插入数据出错: 经过排查,因为Update数据时没有出错,所以OracleHelper没有问题: 看异常信息提示:无效的变量和数据,应该是SQL语句的问题,调试时所传的实例Use ...
- mysql数据库中插入数据INSERT INTO SET的优势
往mysql数据库中插入数据.以前常用 INSERT INTO 表名 (列名1,列名2…) VALUES(列值1,列值2); 如果在PHP程序中,就会写成如下示例(往商品库里增加商品) $sql = ...
- mongodb数据库中插入数据
mongodb数据库中插入数据 一:connection 访问集合: 在mongodb数据库中,数据是存储在许多数据集合中,可以使用数据库对象的collection方法访问一个集合.该方法使用如下: ...
- 以使用QSqlQuery向数据库中插入数据为例,做一个小结
背景: 最近在使用Qt+SQLite写一个本地数据库管理程序(使用者不懂SQL),在写向数据库中插入数据的 相关的函数时,我遇到了几个问题(暂时就这些): 1.向指定字段插入指定数据时,读取到的数据都 ...
- MyBatis框架的insert节点-向数据库中插入数据
需求:使用mybatis框架中的insert元素节点向数据库中插入数据 UserMapper.xml UserMapper.java 编写测试方法: @Test public void testAdd ...
- [oracle] 如何使用myBatis在数据库中插入数据并返回主键
在MyBatis中,希望在Oracle中插入数据的同时返回主键值,而非插入的条数. ① oracle使用 selectKey. U_USER_INFO_SEQ 是在数据库中定义好的这张表关联的序列se ...
- 解决getJdbcTemplate往oracle数据库中插入数据返回主键出错问题
我们使用Spring中的JdbcDaoSupport往Mysql中插入数据并返回主键代码,我们使用的mysql数据库,主键在数据库中设置为自增长:该类继承自JdbcDaoSupport,所以能直接使用 ...
- 数据库中插入数据时发生ora-00984错误
操作Oracle数据库,插入数据时显示:ORA-00984列在此处不允许错误,如下图所示: 出现的原因是由于,在插入字符或字符串型字段时.如果插入的数据是纯数字,则不会有错误:如果出现字符,则会报OR ...
- JDBC向数据库中插入数据
新建数据库,并插入相关数据. create database bbs; use bbs; create table article ( id int primary key auto_incremen ...
随机推荐
- Java基础整理之字节、数组、字符串、面向对象
一.字节(8个)8bit = 1B或1byte1024B = 1Kb 二.强制类型转换顺序及其大小顺序遵循向上转换的规则byte,short,char -> int -> long -&g ...
- 棋盘游戏 HDU - 1281 (删点 二分匹配)
小希和Gardon在玩一个游戏:对一个N*M的棋盘,在格子里放尽量多的一些国际象棋里面的“车”,并且使得他们不能互相攻击,这当然很简单,但是Gardon限制了只有某些格子才可以放,小希还是很轻松的解决 ...
- 借读:分布式锁和双写Redis
本帖最后由 howtodown 于 2016-10-3 16:01 编辑问题导读1.为什么会产生分布式锁?2.使用分布式锁的方法有哪些?3.本文创造的分布式锁的双写Redis框架都包含哪些内容? ...
- Redis在window上安装
转:https://www.cnblogs.com/M-LittleBird/p/5902850.html 在windows上启动RabbitMQ: 这是Redis的启动,需要制定配置文件,否则连接不 ...
- cookie的安全性问题
HTTP协议: (1)请求组成部分: 请求行:(get或者post请求:请求路径(不包括主机) :http1.1) 请求头:请求头是浏览器交给服务器的一些信息(比较cookie啥的) 请求体:只有po ...
- HTML5 文件API
filelist 表示文件对象的列表. <form name="upload"> <input type="file" name=" ...
- angularJs的继承
为什么要继承,本来是后端的概念,但是同样适用于前端开发.继承,无疑是将通用的东西抽取出来. 下面介绍的是angular的伪继承,就是说是通过继承scope这个变量来实现的.代码很简单,一行代码就可以. ...
- cin,cout,printf,scanf效率对比
From:http://www.cnblogs.com/killerlegend/p/3918452.html Author:KillerLegend Date:2014.8.17 杭电OJ之3233 ...
- html5 canvas 填充渐变形状
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 移动端手势库hammerJS 2.0.4官方文档翻译(转)
hammerJS是一个优秀的.轻量级的触屏设备手势库,现在已经更新到2.04版本,跟1.0版本有点天壤地别了,毕竟改写了事件名并新增了许多方法,允许同时监听多个手势.自定义识别器,也可以识别滑动方向. ...