• 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 表名
  • 相关阅读:
    STM32-使用软件模拟I2C读写外部EEPROM(AT24C02)
    STM32-软件模拟I2C
    STM32_使用DAC输出三角波
    VS常用快捷键
    C语言volatile关键字在单片机中的作用
    如何使用数据库引擎优化顾问优化数据库(转)
    SQLServer数据库慢查询追踪
    怎么获取基金净值数据?(科普)
    解决了一个ssh登录缓慢的问题
    oracle存储过程转达梦8存储过程时踩过的坑2(完结篇)
  • 原文地址:https://www.cnblogs.com/sunliyuan/p/6555372.html
Copyright © 2020-2023  润新知