Sqlserver在现有数据库中插入数据

网友投稿 532 2022-10-06

Sqlserver在现有数据库中插入数据

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 表名

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微信小程序实现倒计时调用相机自动拍照功能(微信小程序的照相功能)
下一篇:SQLServer索引及统计信息
相关文章

 发表评论

暂时没有评论,来抢沙发吧~