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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.修改数据执行update语句

4.复制表结构

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

 5.删除数据结构

truncate table 表名

 

以上是关于Sqlserver在现有数据库中插入数据的主要内容,如果未能解决你的问题,请参考以下文章

在插入之前检查现有记录

使用 Access 数据库表填充现有 SQL Server 数据库表

将 Excel 单元格值插入现有 SQL 表 [重复]

将代码片段插入数据库并在 textarea 中以相同方式显示

如何在SQLserver中利用循环语句插入大量的数据

从循环中多次插入并检查现有字段