怎么在SQL Server数据库中批量导入数据

43次阅读
没有评论

共计 2121 个字符,预计需要花费 6 分钟才能阅读完成。

自动写代码机器人,免费开通

今天就跟大家聊聊有关怎么在 SQL Server 数据库中批量导入数据,可能很多人都不太了解,为了让大家更加了解,丸趣 TV 小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一、使用 Select Into 语句

若企业数据库都采用的是 SQL Server 数据库的话,则可以利用 Select Into 语句来实现数据的导入。Select Into 语句,他的作用就是把数据从另外一个数据库中查询出来,然后加入到某个用户指定的表中。

在使用这条语句的时候,需要注意几个方面的内容。

1、需要在目的数据库中先建立相关的表。如想把进销存系统数据库 (SQLServer) 中的产品信息表 (Product) 导入到 ERP 系统中的产品信息表 (M_Product) 中。则前期是在 ERP 系统的数据库中已经建立了这张产品信息表。

2、这种方法只复制表中的数据,而不复制表中的索引。如在进销存系统数据中的产品信息表中,在产品编号、产品种类等字段上建立了索引。则利用 Select Into 语句把数据复制到 ERP 系统的表中的时候,只是复制了数据内容的本身,而不会复制索引等信息。

3、这条语句使用具有局限性。一般情况下,这只能够在 SQL Server 数据库中采用。不过,对于 SQL Server 不同版本的数据库,如 2008 或者 2003,还都是兼容的。若需要导入的对象数据库不是 SQL Server 的,则需要采用其他的方法。

4、采用这条语句的话,在目的表中必须不存在数据。否则的话,目的表中的数据会被清除。也就是说,这个语句不支持表与表数据的合并。在 SQL Server 中,有一条类似的语句,可以实现这个功能。这条语句就是:Insert Into。他的作用就是把另外一张表中的数据插入到当前表中。若用户想要的时表与表数据的合并,则可以采用这条语句。两者不能够混淆使用,否则的话,很容 易导致数据的丢失。

5、以上两条语句都支持兼容的不同类型的数据类型。如在原标中,某个字段的数据类型是整数型,但是在目的表中这个字段的数据类型则是浮点型,只要这个两个数据类型本来就兼容的,则在导入的时候,数据库是允许的。

另外再补上一个小技巧:

我们想复制表 a 的所有字段名到一个新表 b 的时候,可以使用以下方法:

1)select * into b from a where 1 1 (仅 SQL Server 可用)

2)select top 0 * into b from a

二、利用 Excel 等中间工具进行控制

虽然第一种方法操作起来比较简单,但是其也有一些缺点。如他只支持同一种类型的数据库; 不能够对数据进行过多的干预等等。一般情况下,若用户原数据准确度比较高,不需要过多的修改就可以直接拿来用的话,则笔者就已采用第一种方式。

但是,若在原数据库中,数据的准确度不是很高,又或者,有很多数据是报废的。总之,需要对原数据库的数据进行整理,才能够使用的情况,我不建议先导入进去,再进行更改。我在遇到这种情况时,喜欢利用 Excle 作为中间工具。也就是说,先把数据中原数据库中导到 Excle 中。有些数据库,如 Oracle 数据库,他不支持 Excle 格式。但是,我们可以把它导为 CSV 格式的文件。这种文件 Excle 也可以打得开。

然后,再在 Excle 中,对记录进行修改。由于 Excle 是一个很强的表格处理软件,所以,其数据修改,要比在数据库中直接修改来得方便,来得简 单。如可以利用按时间排序等功能,把一些长久不用的记录清楚掉。也可以利用替换等功能,把一些不规范的字符更改掉。这些原来在数据库中比较复杂的任务,在 Excle 等工具中都可以轻松的完成。

等到表中的内容修改无误后,数据库管理员就可以把 Excle 表格中的文件直接导入到 SQL Server 数据库中。由于 SQL Server 与 Excel 是同一个父母生的,所以,他们之间的兼容性很好。在 Sql Server 中提供了直接从 Excel 文件中导入数据的工具。

虽然这要借助中间工具导入数据,但是,因为其处理起来方便、直观,所以,我在大部分时候都是采用这种方式。最后,再附上如何让 Excel 表格在数据库中能查看到的相关代码:

exec sp_addlinkedserver  excel , ex , Microsoft.Jet.OLEDB.4.0 , C:\Documents and Settings\Administrator\ 桌面 \abc.xls ,null, Excel 5.0  -- 创建一个名为 excel 的连接服务,可以查看到 abc.xls 里面的内容 EXEC sp_addlinkedsrvlogin  excel ,  false ,  sa ,  Admin , NULL -- 创建一个映射以允许  SQL Server  登录  sa  使用  Excel  登录  Admin  连接到  excel,并且没有密码 --exec sp_dropserver  excel  -- 删除连接 select * from excel...Sheet1$ -- 查看 Excel 的 Sheet1 表里面的内容

看完上述内容,你们对怎么在 SQL Server 数据库中批量导入数据有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注丸趣 TV 行业资讯频道,感谢大家的支持。

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计2121字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)