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 表名
时间: 2024-08-03 16:13:06

Sqlserver在现有数据库中插入数据的相关文章

用java向mysql数据库中插入数据为空

利用java面向对像编程,向数据库中插入数据时.遇到插入的数据为空的情况.在此做一小结: 1.数据库连接正正常 2.sql语句没有问题 3.程序没有报异常 4.代码: import java.util.Scanner; import org.junit.Test;public class JDBCTest { //2).在测试方法testAAddStudent()中 //1.获取从控制台输入的Student对象:Student student=getStudentFromConsole(); /

解决getJdbcTemplate往oracle数据库中插入数据返回主键出错问题

我们使用Spring中的JdbcDaoSupport往Mysql中插入数据并返回主键代码,我们使用的mysql数据库,主键在数据库中设置为自增长:该类继承自JdbcDaoSupport,所以能直接使用getJdbcTemplate() public int saveUser(String userName,int age,String password){ getJdbcTemplate().update(new PreparedStatementCreator() { public Prepa

向Oracle数据库中插入数据出错:ORA-01036 无效的变量名或数据

向Oracle数据库中插入数据出错: 经过排查,因为Update数据时没有出错,所以OracleHelper没有问题: 看异常信息提示:无效的变量和数据,应该是SQL语句的问题,调试时所传的实例UserInfo数据是正确的,所以只能是SQL语句的问题: 曾今一度怀疑这样使用Sequence是错误的,中途变换了触发器,弄了变天触发器也些错误了, 再次回到直接用序列,仔细之下,终于发现这个分号‘:’,这里应该为‘:’,实在是太小了,很难发现,以后这里最好留一个空格.

以使用QSqlQuery向数据库中插入数据为例,做一个小结

背景: 最近在使用Qt+SQLite写一个本地数据库管理程序(使用者不懂SQL),在写向数据库中插入数据的 相关的函数时,我遇到了几个问题(暂时就这些): 1.向指定字段插入指定数据时,读取到的数据都是字符串类型,然而不同字段的数据类型是不同的,这 里需要获取不同字段的数据类型,再做类型转换 2.使用QSqlQuery插入数据时,具体实现的考虑 3.在实现一个功能时,是先将功能做出来,然后对一些最初未考虑到的问题慢慢补足,还是先尽可能考 虑到所有情况,再实现相关功能 4.此时某个函数的实现,是否

如何使用myBatis在数据库中插入数据并返回主键

在MyBatis中,希望在Oracle中插入数据的同时返回主键值,而非插入的条数. ① oracle使用 selectKey. U_USER_INFO_SEQ 是在数据库中定义好的这张表关联的序列sequence, Nextval是获取自增的id <insert id="insertSelective" parameterType="com.jxxx.p2pp.model.UUserInfo"> <selectKey resultType=&quo

mongodb数据库中插入数据

一:connection 访问集合: 在mongodb数据库中,数据是存储在许多数据集合中,可以使用数据库对象的collection方法访问一个集合.该方法使用如下: db.collection(collectionName, [options], [callback]); collectionName参数值是一个字符串,用于指定需要访问的集合名,该参数是必须填写的.options参数值为一个对象,用于指定访问该集合时使用的选项,使用的属性可以百度搜索下,选项比较多,用到的时候可以查下.call

JDBC向数据库中插入数据

新建数据库,并插入相关数据. 1 create database bbs; 2 3 use bbs; 4 5 create table article 6 ( 7 id int primary key auto_increment, 8 pid int, 9 rootid int, 10 title varchar(255), 11 cont text, 12 pdate datetime, 13 isleaf int 14 ); 15 16 insert into article values

向数据库中插入数据时字符集或查询是数据无法正常显示出现乱码问题

当向数据库插入数据出错或出局无法正常显示出现乱码时.首先应该想到的是数据库的编码问题.查看当前数据库服务器默认对数据库处理的字符集 show variables like  'character_set%'; character_set_client: 默认客户端来的数据格式 character_set_connection : 连接层字符集 character_set_database:  当前数据库字符集 character_set_results:服务器给外部的字符集 假如客户端字符集与数

.NET中批量给数据库中插入数据

很多时候我们需要把一个txt.xml.excel等文件中的数据插入到数据库中指定的表中.用传统的读取数据构造SQL语句插入性能会很慢(应为要频繁的执行ExectueNonQuery方法),特别是数据量非常大的时候,这个方法不能满足我们的需求,这时微软为我们提供了一个类SqlBulkCopy,能让我们把一个数据块拷贝到指定的数据表中,下面是SQLBulkCopy类使用的一个Demo: 1 #region SqlBullCopy实现,性能很好 2 Stopwatch watch = new Stop