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

本文介绍了如何使用Excel宏生成GUID,编写Excel函数处理数据映射,并提供了将Excel数据同步到数据库的方法,包括处理数据重复、更新及插入操作。

需求: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 表名

转载于:https://www.cnblogs.com/sunliyuan/p/6555372.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值