【VIP专享】怎样把Excel文件资料导入SQL_Server2008的数据库的表中

合集下载

图解把Excel数据导入到SQL Server 2008

图解把Excel数据导入到SQL Server 2008

实验环境: WIN XP ,MS Office Excel 2007 ,Sql Server 2008准备数据: Excel文档: D:\test\重复出修率.xlsx方法一:第一步: 打开SSMS:【开始】→【所有程序】→【Microsoft Sql Server 2008】→【Sql Server Management Studio】第二步: 连接数据库:在’对象资源管理器’中点击【连接】→【数据库引擎】登陆服务器(P.S:如果没有看到’对象资源管理器’,点击左上角的【视图】→【对象管理器】)第三步: 登陆成功后,右击你要导入数据的数据库名,我这里数据库名是’TEST’右击【TEST】→【任务】→【导入数据】这时候会出现一个向导:点击【下一步】在弹出的窗口中,【数据源】选择:Microsoft Excel ;【Excel文件路径】就选择你本地电脑存放Excel文档的路径,我这里是D:\test\重复出修率.xlsx 【Excel版本】选择Excel 2007 (可以根据你office的版本,选择其他如Excel 2003等等。

)选中【首行包含列名称】框,最后点击【下一步】“首行包含列名称”是指Excel中的首行数据插入数据库后将作为新建表的列名.在弹出窗口中,【目标】可以采取默认的,【服务器名称】也是一样可以选择身份验证,最后选择你要插入数据到哪个数据库中。

如我这里选的是’TEST’,选好后点击【下一步】如果就把Excel数据插入一个新表,就选择【复制一个或多个表或视图的数据】如果想把Excel数据插入到已存在的一张表中,则选择下面的【编写查询以指定要传输的数据】我这里是选择上面一个,然后点击【下一步】接着会弹出Excel表中的sheet表名字,如果你没有修改过sheet表名字,则可能显示的是’shee1$’, ’shee2$’, ’shee3$’等等.然后你选中你想要导入的哪张表的数据,我这里导入的是【’aug$’】选中后,右边的【目标】栏位中会出现内容,dbo是指数据库的架构名,aug$只是新建的表名,如果你想修改表明,双击就可以表明进入编辑状态就可以修改了。

将EXCEL导入SQL表

将EXCEL导入SQL表

将EXCEL表导入SQL表医院在正式使用软件之前,需要将药品、收费项目等进行集中录入。

这是一件基础工作,工作量大。

如果能够先将药品、收费项目输入到EXCEL表中,再直接导入我们的软件,这样可以加快录入速度。

从EXCEL中导入数据到SQL中,操作步骤如下:一、准备阶段(主要是为药品或者项目生成六位数的字母编码。

):首行,需要在EXCEL中增加一列,为药品生成编码。

软件默认的编码格式为六位字母。

1、人工录入完成的EXCEL表样式:请将第一行中的编码、名称、处方单位等中文改成对应的拼音字母:编码(bm)、药品名称(mc)、处方单位(dw)、整量单位(kxdw)、换算系数(xs)、规格(ggxh)、零售价(lsj)、药品分类(zxfl)1、这时,编码(bm)列为空,在灵图医院软件中,药品的编码格式为六位字母,如AAAABA、AAAABB等,但如何能够按顺序生成这样的编码呢?操作步骤如下:A、依次点工具-宏-visaul basic 编辑器,新弹出窗口如下:B、在左边的对象上,右键,选择“导入文件…”,在文件选择路径中,找到医院软件目录中的bm.bas文件,确定。

C、这时,在“模块”下方将增加“自动编码”模块,D、关掉本窗口,返回到EXCEL窗口2、在表的A2单元格中输入编码:AAAABA3、选中A3单元格,在上面的公式条中输入=GETNEXTBM(A2),回车确认,则A3单元格中的值自动生成为:AAAABB4、选中A3单元格,往下拉,所有的编码将自动生成。

二、将EXCEL表导入SQL表1、依次打开SQL的企业管理器-数据库-表,如图:2、将光标放在数据库(如:lingtu)上,单击右键,选择所有任务-导入数据。

弹开如下窗口:3、按下一步,在弹开的窗口中选择正确的数据源。

(注意:数据源选择为Microsoft Excel 97-2000)5、点“下一步”,弹开目的文件夹窗口:6、按下一步,选择用一条查询来指定需要传输的数据:7、点:下一步,点查询生成器命令,弹开如下窗口:8、选择左边的yp$,点向右的箭头,选中所需要还原的列。

sql server 2008 怎么导入数据库图解

sql server 2008 怎么导入数据库图解

sql server 2008 怎么导入数据库图解INSERT INTO 表SELECT * FROMOPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)的形式如果是导入数据并新增表,则采用SELECT * INTO 表FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)的形式。

以上语句是将EXCEL文件里SHEET1工作表中所有的列都读进来,如果只想导部分列,可以INSERT INTO 表(a1,a2,a3) SELECT a1,a2,a3 FROMOPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)其实可以将OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)当成一个表,例如我就写过这样一个句子:INSERT INTO eval_channel_employee(channel,employee_id)SELECT CASE a.渠道WHEN 'DIY' THEN 1 WHEN 'RDC' THEN 0 WHEN'KCM' THEN 2 ELSE 3 END,b.id FROMOPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:\temp\name.xls',sheet1$) ASa,pers_employee bWHERE a.员工编码=b.code简单的方法:SQL2005中直接可以实现导入功能SQL2008不知道可不可以。

Excel导入外部数据的方法及数据源设置

Excel导入外部数据的方法及数据源设置

Excel导入外部数据的方法及数据源设置Excel是一款功能强大的电子表格软件,广泛应用于各个行业和领域。

在Excel 中,我们可以通过导入外部数据来获取更多的信息和数据,以便进行分析和处理。

本文将介绍Excel导入外部数据的方法以及数据源设置的相关知识。

一、导入外部数据的方法Excel提供了多种方法来导入外部数据,以下是其中几种常用的方法:1. 从文本文件导入:如果需要导入一个文本文件中的数据,可以选择“数据”选项卡中的“从文本”按钮,然后按照向导的提示选择文件和数据分隔符等信息,即可将文本文件中的数据导入到Excel中。

2. 从数据库导入:如果需要导入数据库中的数据,可以选择“数据”选项卡中的“从其他来源”按钮,然后选择“从SQL Server”或“从Access”等选项,按照向导的提示连接数据库并选择需要导入的数据表,即可将数据库中的数据导入到Excel中。

3. 从Web页面导入:如果需要从Web页面上获取数据,可以选择“数据”选项卡中的“从Web”按钮,然后输入Web页面的URL地址,按照向导的提示选择需要导入的数据表格,即可将Web页面上的数据导入到Excel中。

4. 从其他文件导入:除了文本文件和数据库,Excel还支持从其他文件格式中导入数据,如CSV文件、XML文件等。

可以选择“数据”选项卡中的“从其他来源”按钮,然后选择对应的文件格式,按照向导的提示选择文件和数据分隔符等信息,即可将其他文件中的数据导入到Excel中。

二、数据源设置在导入外部数据之前,我们还需要进行一些数据源设置,以确保数据的准确性和完整性。

以下是一些常见的数据源设置:1. 数据分隔符设置:当导入文本文件时,我们需要指定数据的分隔符,如逗号、制表符等。

在导入向导中,可以选择合适的分隔符,以确保数据能够正确地分列到Excel的各个单元格中。

2. 数据类型设置:在导入数据时,Excel会自动根据数据的格式进行数据类型的判断。

SQL Server与Excel中数据的导入导出基本方法

SQL Server与Excel中数据的导入导出基本方法

从SQL Server中导入/导出Excel的基本方法从sql server中导入/导出excel 的基本方法/*=========== 导入/导出excel 的基本方法===========*/从excel文档中,导入数据到sql数据库中,很简单,直接用下面的语句:/*=============================================*/--假如接受数据导入的表已存在insert into 表select * fromopenrowset(microsoft.jet.oledb.4.0,excel 5.0;hdr=yes;database=c:test.xls,sheet1$)--假如导入数据并生成表select * into 表fromopenrowset(microsoft.jet.oledb.4.0,excel 5.0;hdr=yes;database=c:test.xls,sheet1$)/*===========================================*/--假如从sql数据库中,导出数据到excel,假如excel文档已存在,而且已按照要接收的数据创建好表头,就能够简单的用:insert into openrowset(microsoft.jet.oledb.4.0,excel 5.0;hdr=yes;database=c:test.xls,sheet1$)select * from 表--假如excel文档不存在,也能够用bcp来导成类excel的文档,注意大小写:--导出表的情况exec master..xp_cmdshell bcp 数据库名.dbo.表名out "c:test.xls" /c -/s"服务器名" /u"用户名" -p"密码"--导出查询的情况exec master..xp_cmdshell bcp "select au_fname, au_lname frompubs..authors order by au_lname" queryout "c:test.xls" /c -/s"服务器名" /u"用户名" -p"密码"/*--说明:c:test.xls 为导入/导出的excel文档名.sheet1$ 为excel文档的工作表名,一般要加上$才能正常使用.--*/--上面已说过,用bcp导出的是类excel文档,其实质为文本文档,--要导出真正的excel文档.就用下面的方法/*--数据导出excel导出表中的数据到excel,包含字段名,文档为真正的excel文档,假如文档不存在,将自动创建文档,假如表不存在,将自动创建表基于通用性考虑,仅支持导出标准数据类型--邹建2003.10--*//*--调用示例p_exporttb @tbname=地区资料,@path=c:,@fname=aa.xls--*/if exists (select * from dbo.sysobjects where id = object_id(n[dbo].[p_exporttb]) and objectproperty(id, nisprocedure) = 1)drop procedure [dbo].[p_exporttb]gocreate proc p_exporttb@tbname sysname, --要导出的表名@path nvarchar(1000), --文档存放目录@fname nvarchar(250)= --文档名,默认为表名asdeclare @err int,@src nvarchar(255),@desc nvarchar(255),@out int declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)--参数检测if isnull(@fname,)= set @fname=@tbname+.xls--检查文档是否已存在if right(@path,1)<> set @path=@path+create table #tb(a bit,b bit,c bit)set @sql=@path+@fnameinsert into #tb exec master..xp_fileexist @sql--数据库创建语句set @sql=@path+@fnameif exists(select 1 from #tb where a=1)set @constr=driver={microsoft excel driver (*.xls)};dsn=;readonly=false +;create_db=" +;database=+@sql+"--连接数据库exec @err=sp_oacreate adodb.connection,@obj outif @err<>0 goto lberrexec @err=sp_oamethod @obj,open,null,@constrif @err<>0 goto lberr/*--假如覆盖已存在的表,就加上下面的语句--创建之前先删除表/假如存在的话select @sql=drop table [+@tbname+]exec @err=sp_oamethod @obj,execute,@out out,@sql--*/--创建表的sqlselect @sql=,@fdlist=select @fdlist=@fdlist+,[++],@sql=@sql+,[++]+case when in(char,nchar,varchar,nvarchar) thentext(+cast(case when a.length>255 then 255 else a.length end as varchar)+)when in(tynyint,int,bigint,tinyint) then intwhen in(smalldatetime,datetime) then datetimewhen in(money,smallmoney) then moneyelse endfrom syscolumns a left join systypes b on a.xtype=b.xusertypewhere notin(image,text,uniqueidentifier,sql_variant,ntext,varbinary,binary,timestamp) and object_id(@tbname)=idselect @sql=create table [+@tbname+](+substring(@sql,2,8000)+),@fdlist=substring(@fdlist,2,8000)exec @err=sp_oamethod @obj,execute,@out out,@sqlif @err<>0 goto lberrexec @err=sp_oadestroy @obj--导入数据set @sql=openrowset(microsoft.jet.oledb.4.0,excel 5.0;hdr=yes;database=+@path+@fname+,[+@tbname+$])exec(insert into +@sql+(+@fdlist+) select +@fdlist+ from +@tbname) returnexec sp_oageterrorinfo 0,@src out,@desc outlbexit:select cast(@err as varbinary(4)) as 错误号,@src as 错误源,@desc as 错误描述select @sql,@constr,@fdlistgo--上面是导表的,下面是导查询语句的./*--数据导出excel导出查询中的数据到excel,包含字段名,文档为真正的excel文档,假如文档不存在,将自动创建文档,假如表不存在,将自动创建表基于通用性考虑,仅支持导出标准数据类型--邹建2003.10--*//*--调用示例p_exporttb @sqlstr=select * from 地区资料,@path=c:,@fname=aa.xls,@sheetname=地区资料--*/if exists (select * from dbo.sysobjects where id = object_id(n[dbo].[p_exporttb]) and objectproperty(id, nisprocedure) = 1)drop procedure [dbo].[p_exporttb]gocreate proc p_exporttb@sqlstr varchar(8000), --查询语句,假如查询语句中使用了order by ,请加上top 100 percent@path nvarchar(1000), --文档存放目录@fname nvarchar(250), --文档名@sheetname varchar(250)= --要创建的工作表名,默认为文档名declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)--参数检测if isnull(@fname,)= set @fname=temp.xlsif isnull(@sheetname,)= set @sheetname=replace(@fname,.,#)--检查文档是否已存在if right(@path,1)<> set @path=@path+create table #tb(a bit,b bit,c bit)set @sql=@path+@fnameinsert into #tb exec master..xp_fileexist @sql--数据库创建语句set @sql=@path+@fnameif exists(select 1 from #tb where a=1)set @constr=driver={microsoft excel driver (*.xls)};dsn=;readonly=false +;create_db=" +;database=+@sql+"--连接数据库exec @err=sp_oacreate adodb.connection,@obj outif @err<>0 goto lberrexec @err=sp_oamethod @obj,open,null,@constrif @err<>0 goto lberr--创建表的sqldeclare @tbname sysnameset @tbname=##tmp_+convert(varchar(38),newid())set @sql=select * into [+@tbname+] from(+@sqlstr+) aexec(@sql)select @sql=,@fdlist=select @fdlist=@fdlist+,[++],@sql=@sql+,[++]+case when in(char,nchar,varchar,nvarchar) thentext(+cast(case when a.length>255 then 255 else a.length end as varchar)+)when in(tynyint,int,bigint,tinyint) then intwhen in(smalldatetime,datetime) then datetimewhen in(money,smallmoney) then moneyelse endfrom tempdb..syscolumns a left join tempdb..systypes b ona.xtype=b.xusertypewhere notin(image,text,uniqueidentifier,sql_variant,ntext,varbinary,binary,timestamp) and a.id=(select id from tempdb..sysobjects where name=@tbname) select @sql=create table [+@sheetname+](+substring(@sql,2,8000)+),@fdlist=substring(@fdlist,2,8000)exec @err=sp_oamethod @obj,execute,@out out,@sqlif @err<>0 goto lberrexec @err=sp_oadestroy @obj--导入数据set @sql=openrowset(microsoft.jet.oledb.4.0,excel 5.0;hdr=yes;database=+@path+@fname+,[+@sheetname+$])exec(insert into +@sql+(+@fdlist+) select +@fdlist+ from [+@tbname+])set @sql=drop table [+@tbname+]exec(@sql)returnlberr:exec sp_oageterrorinfo 0,@src out,@desc out lbexit:select cast(@err as varbinary(4)) as 错误号,@src as 错误源,@desc as 错误描述select @sql,@constr,@fdlistgo。

如何利用VBA实现Excel与SQL Server数据库的数据交互

如何利用VBA实现Excel与SQL Server数据库的数据交互

如何利用VBA实现Excel与SQLServer数据库的数据交互VBA (Visual Basic for Applications) 是一种用于自动化任务和处理数据的编程语言,广泛应用于Microsoft Office套件中,包括Excel。

通过VBA,我们可以将Excel与SQL Server数据库进行数据交互,实现数据的导入、导出、更新和查询等操作。

这篇文章将介绍如何利用VBA实现Excel与SQL Server数据库的数据交互。

我们将分为以下几个部分来讨论和实现这个目标:1. 连接到SQL Server数据库:首先,我们需要建立与SQL Server数据库的连接来进行数据交互。

在Excel中,可以使用ADODB(ActiveX Data Objects Database)对象来实现这一点。

我们需要使用正确的连接字符串来连接到SQL Server,并选择适当的数据库。

2. 查询数据:一旦连接成功,我们可以使用SQL语句来查询数据库中的数据。

在VBA中,可以使用ADODB.Recordset对象来执行查询,并将结果保存到Excel中的工作表中。

我们需要编写合适的SQL查询语句来选取所需的数据。

3. 导入数据:如果我们需要将Excel中的数据导入到SQL Server数据库中,可以使用ADO对象的Execute方法来执行INSERT语句。

我们可以使用Excel的数据范围或遍历工作表中的单元格,然后将数据插入到数据库中。

4. 更新数据:通过使用UPDATE语句,我们可以在数据库中更新现有数据。

在VBA中,可以使用ADO对象的Execute方法来执行UPDATE语句,并通过WHERE子句选择需要更新的记录。

5. 删除数据:对于需要从数据库中删除数据的情况,可以使用DELETE语句。

在VBA中,我们可以使用ADO对象的Execute方法来执行DELETE语句,并通过WHERE子句选择需要删除的记录。

ExcelVBA导入Excel中数据到SQLServer中

ExcelVBA导入Excel中数据到SQLServer中

[方法一]如何把EXC‎EL中的数据‎导入SQL SERVER‎数据库中(2010-12-30 17:16:53)有时候需要把‎E XCEL中‎的数据导入到‎数据库中。

一条一条的在‎数据库中建数‎据显然不可取‎,如何找一条快‎捷的途径进行‎转换是很有必‎要的。

在这里主要是‎介绍一种在E‎X CEL中用‎V BA进行编‎程,把EXCEL‎的数据转换成‎S QL语句,存入到一个文‎件中,然后在数据库‎服务器上提交‎这些SQL语‎句来实现。

一、两边的数据格‎式(一)数据库的表结‎构生成数据库表‎的SQL语句‎如下:create‎table Addres‎s(ID Intege‎r identi‎t y(1,1) not null primar‎y key,Name varcha‎r(20) not null,Dept varcha‎r(50),Spell varcha‎r(20),Mobile‎ varcha‎r(11),Tel varcha‎r(20),EMail varcha‎r(30),VOIP varcha‎r(6),Remark‎ varcha‎r(200),);EXCEL中‎的数据格式(二)转换的VBA‎函数Sub Genera‎t eSQL()Dim i, k As LongDim s As String‎Open "d:\txl.sql" For Output‎As #1 '打开一个文件‎以供输入SQ‎L语句i = 2While Cells(i, 1) <> ""s = "INSERT‎INTO ADDRES‎S (Name,Dept,Mobile‎,Tel,VOIP,EMail) VALUES‎("For k = 1 To 5s = s & "'" & Cells(i, k) & "',"Nexts = s & "'" & Cells(i, 6) & "');"Print #1, s '输出一条语句‎至文件i = i + 1WendClose #1 '关闭文件End Sub以上的代码用‎于逐行把数据‎转换成SQL‎语句写入“d:\txl.sql”中。

Excel表格里的数据导入SQLSERVER数据库

Excel表格里的数据导入SQLSERVER数据库

使用第三方工具
总结词
除了SQL Server自带的功能外,还有许多第三方工具可以帮助用户将Excel数据导入SQL Server。
详细描述
这些第三方工具通常提供了更多的功能和灵活性,例如支持更多的文件格式、自动映射列、数据清洗和转换等。 用户可以根据自己的需求选择合适的工具,如DataGrip、Tableau、Power BI等。
逻辑检查
检查数据是否符合业务逻 辑,如年龄字段是否合理。
参照完整性
检查外键引用是否有效, 关联的数据是否一致。
数据性能优化
索引优化
根据查询需求,为常用查询字段 建立合适的索引。
查询优化
优化导入后的查询语句,提高查询 效率。
数据分区
根据数据的特点和使用频率,对表 进行分区管理。
THANKS
感谢观看
02
Excel数据导入SQL Server的方法
使用SQL Server Integration Services (SSIS)
总结词
SSIS是SQL Server提供的一个强大的ETL工具,可以用来导入、导出和转换数据 。
详细描述
通过SSIS,用户可以创建一个数据流任务,将Excel文件作为源数据,然后将其导入 到SQL Server数据库中。在SSIS中,用户可以定义数据清洗、转换和加载的规则, 确保数据准确无误地导入到目标表中。
通过导入Excel数据到SQL Server, 可以自动化地完成数据清洗、转换 和加载等任务,减少手动操作的时 间和人力成本。
批量处理
导入大量数据时,使用SQL Server的批量导入功能可以显著 提高数据处理的效率,减少等待 时间。
保证数据一致性
数据格式统一

SQL Server与Excel数据互导解答

SQL Server与Excel数据互导解答

从SQL Server中导入/导出Excel 的基本方法/*=================== 导入/导出Excel 的基本方法===================*/从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:/*===================================================================*/--如果接受数据导入的表已经存在insert into 表select * fromOPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:test.xls',sheet1$)--如果导入数据并生成表select * into 表fromOPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:test.xls',sheet1$)/*===================================================================*/--如果从SQL数据库中,导出数据到Excel,如果Excel文件已经存在,而且已经按照要接收的数据创建好表头,就可以简单的用:insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=c:test.xls',sheet1$)select * from 表--如果Excel文件不存在,也可以用BCP来导成类Excel的文件,注意大小写:--导出表的情况EXEC master..xp_cmdshell 'bcp 数据库名.dbo.表名out "c:test.xls" /c -/S"服务器名" /U"用户名" -P"密码"'--导出查询的情况EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout "c:test.xls" /c -/S"服务器名" /U"用户名" -P"密码"'/*--说明:c:test.xls 为导入/导出的Excel文件名.sheet1$ 为Excel文件的工作表名,一般要加上$才能正常使用.--*/--上面已经说过,用BCP导出的是类Excel文件,其实质为文本文件,--要导出真正的Excel文件.就用下面的方法/*--数据导出EXCEL导出表中的数据到Excel,包含字段名,文件为真正的Excel文件,如果文件不存在,将自动创建文件,如果表不存在,将自动创建表基于通用性考虑,仅支持导出标准数据类型--邹建2003.10--*//*--调用示例p_exporttb @tbname='地区资料',@path='c:',@fname='aa.xls'--*/if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_exporttb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_exporttb]GOcreate proc p_exporttb@tbname sysname, --要导出的表名@path nvarchar(1000), --文件存放目录@fname nvarchar(250)='' --文件名,默认为表名asdeclare @err int,@src nvarchar(255),@desc nvarchar(255),@out intdeclare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)--参数检测if isnull(@fname,'')='' set @fname=@tbname+'.xls'--检查文件是否已经存在if right(@path,1)<>'' set @path=@path+''create table #tb(a bit,b bit,c bit)set @sql=@path+@fnameinsert into #tb exec master..xp_fileexist @sql--数据库创建语句set @sql=@path+@fnameif exists(select 1 from #tb where a=1)set @constr='DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';READONLY=FALSE' +';CREATE_DB=" +';DATABASE='+@sql+'"'--连接数据库exec @err=sp_oacreate 'adodb.connection',@obj outif @err<>0 goto lberrexec @err=sp_oamethod @obj,'open',null,@constrif @err<>0 goto lberr/*--如果覆盖已经存在的表,就加上下面的语句--创建之前先删除表/如果存在的话select @sql='drop table ['+@tbname+']'exec @err=sp_oamethod @obj,'execute',@out out,@sql--*/--创建表的SQLselect @sql='',@fdlist=''select @fdlist=@fdlist+',['++']',@sql=@sql+',['++'] '+case when in('char','nchar','varchar','nvarchar') then'text('+cast(case when a.length>255 then 255 else a.length end as varchar)+')'when in('tynyint','int','bigint','tinyint') then 'int'when in('smalldatetime','datetime') then 'datetime'when in('money','smallmoney') then 'money'else endFROM syscolumns a left join systypes b on a.xtype=b.xusertypewhere not in('image','text','uniqueidentifier','sql_variant','ntext','varbinary','binary','timestamp')and object_id(@tbname)=idselect @sql='create table ['+@tbname+']('+substring(@sql,2,8000)+')',@fdlist=substring(@fdlist,2,8000)exec @err=sp_oamethod @obj,'execute',@out out,@sqlif @err<>0 goto lberrexec @err=sp_oadestroy @obj--导入数据set @sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel 5.0;HDR=YES;DATABASE='+@path+@fname+''',['+@tbname+'$])'exec('insert into '+@sql+'('+@fdlist+') select '+@fdlist+' from '+@tbname)returnlberr:exec sp_oageterrorinfo 0,@src out,@desc outlbexit:select cast(@err as varbinary(4)) as 错误号,@src as 错误源,@desc as 错误描述select @sql,@constr,@fdlistgo--上面是导表的,下面是导查询语句的.-- 导出到excel--set @sql=’bcp "’+@tbname+’" out "c:\aa.txt" /S"(local)" /P"" /c’exec master..xp_cmdshell 'bcp "sk_xh.dbo.pensheng" out "c:\aa.xls" /S"kl-ps" /P"" / c'--导入ExcelSELECT * INTO pensheng FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=e:\dr.xls',[sheet1$])--ORSELECT * INTO pensheng FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=e:\dr.xls', [sheet1$])--ORSELECT * INTO pensheng FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=e:\dr.xls', 'SELECT * FROM [sheet1$]')/*动态文件名declare @fn varchar(20),@s varchar(1000)set @fn = 'c:\test.xls'set @s ='''Microsoft.Jet.OLEDB.4.0'',''Data Source="'+@fn+'";User ID=Admin;Password=;Extended properties=Excel 5.0'''set @s = 'SELECT * FROM OpenDataSource ('+@s+')...sheet1$'exec(@s)*/SELECT cast(cast(科目编号as numeric(10,2)) as nvarchar(255))+'' 转换后的别名FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')... xactions/********************** EXCEL导到远程SQLinsert OPENDATASOURCE('SQLOLEDB','Data Source=远程ip;User ID=sa;Password=密码').库名.dbo.表名(列名1,列名2)SELECT 列名1,列名2FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')... xactions/** 导入文本文件EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -U sa -Ppassword'/** 导出文本文件EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'或EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT. txt -c -Sservername -Usa -Ppassword'导出到TXT文本,用逗号分开exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'BULK INSERT 库名..表名FROM 'c:\test.txt'WITH (FIELDTERMINATOR = ';',ROWTERMINATOR = '\n')--/* dBase IV文件select * fromOPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase IV;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料4.dbf]')--*/--/* dBase III文件select * fromOPENROWSET('MICROSOFT.JET.OLEDB.4.0','dBase III;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料3.dbf]')--*/--/* FoxPro 数据库select * from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select * from [aa.DBF]')--*//**************导入DBF文件****************/select * from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceDB=e:\VFP98\data;SourceType=DBF','select * from customer where country != "USA" order by country')go/***************** 导出到DBF ***************/如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句insert into openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\','select * from [aa.DBF]')select * from 表说明:SourceDB=c:\ 指定foxpro表所在的文件夹aa.DBF 指定foxpro表的文件名./*************导出到Access********************/insert into openrowset('Microsoft.Jet.OLEDB.4.0','x:\A.mdb';'admin';'',A表) select * from 数据库名..B表/*************导入Access********************/insert into B表selet * from openrowset('Microsoft.Jet.OLEDB.4.0','x:\A.mdb';'admin';'',A表)文件名为参数declare @fname varchar(20)set @fname = 'd:\test.mdb'exec('SELECT a.* FROM opendatasource(''Microsoft.Jet.OLEDB.4.0'','''+@fname+''';''admin'';'''', topics) as a ')SELECT *FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="f:\northwind.mdb";Jet OLEDB:Database Password=123;User ID=Admin;P assword=;')...产品********************* 导入xml文件DECLARE @idoc intDECLARE @doc varchar(1000)--sample XML documentSET @doc ='<root><Customer cid= "C1" name="Janine" city="Issaquah"><Order oid="O1" date="1/20/1996" amount="3.5" /><Order oid="O2" date="4/30/1997" amount="13.4">Customer was very sati sfied</Order></Customer><Customer cid="C2" name="Ursula" city="Oelde" ><Order oid="O3" date="7/14/1999" amount="100" note="Wrap it bluewhite red"><Urgency>Important</Urgency>Happy Customer.</Order><Order oid="O4" date="1/20/1996" amount="10000"/></Customer></root>'-- Create an internal representation of the XML document.EXEC sp_xml_preparedocument @idoc OUTPUT, @doc-- Execute a SELECT statement using OPENXML rowset provider.SELECT *FROM OPENXML (@idoc, '/root/Customer/Order', 1)WITH (oid char(5),amount float,comment ntext 'text()')EXEC sp_xml_removedocument @idocTop5 楼pensheng(云飞)回复于2005-08-28 13:45:17 得分0/**********************Excel导到Txt****************************************/想用select * into opendatasource(...) from opendatasource(...)实现将一个Excel文件内容导入到一个文本文件假设Excel中有两列,第一列为姓名,第二列为很行帐号(16位)且银行帐号导出到文本文件后分两部分,前8位和后8位分开。

excel表导入sql数据库的教程

excel表导入sql数据库的教程

excel表导入sql数据库的教程在Excel中录入好数据以后经常需要把Excel表导入到SQL中里去,具体如何导入呢?接下来是店铺为大家带来的excel表导入sql数据库的教程,供大家参考。

excel表导入sql数据库的教程:Excel表导入sql数据库步骤1:打开SQL Server Management Studio,按图中的路径进入导入数据界面。

Excel表导入sql数据库步骤2:导入的时候需要将EXCEL的文件准备好,不能打开。

点击下一步。

Excel表导入sql数据库步骤3:数据源:选择“Microsoft Excel”除了EXCEL类型的数据,SQL还支持很多其它数据源类型。

Excel表导入sql数据库步骤4:选择需要导入的EXCEL文件。

点击浏览,找到导入的文件确定。

Excel表导入sql数据库步骤5:再次确认文件路径没有问题,点击下一步。

Excel表导入sql数据库步骤6:默认为是使用的WINODWS身份验证,改为使用SQL身份验证。

输入数据库密码,注意:数据库,这里看看是不是导入的数据库。

也可以在这里临时改变,选择其它数据库。

Excel表导入sql数据库步骤7:选择导入数据EXCEL表内容范围,若有几个SHEET表,或一个SHEET表中有些数据我们不想导入,则可以编写查询指定的数据进行导入。

点击下一步。

Excel表导入sql数据库步骤8:选择我们需要导入的SHEET表,比如我在这里将SHEET表名改为price,则导入后生面的SQL数据库表为price$。

点击进入下一步。

Excel表导入sql数据库步骤9:点击进入下一步。

Excel表导入sql数据库步骤10:在这里完整显示了我们的导入的信息,执行内容,再次确认无误后,点击完成,开始执行。

Excel表导入sql数据库步骤11:可以看到任务执行的过程和进度。

Excel表导入sql数据库步骤12:执行成功:我们可以看看执行结果,已传输1754行,表示从EXCEL表中导入1754条数据,包括列名标题。

将Excel数据保存至Sqlserver

将Excel数据保存至Sqlserver

将Excel数据保存至Sqlserver在此仅提供一种方法。

1、将Excel文件上传至服务器的指定目录内;2、数据量较小且Sqlserver表中具有与Excel表字段一致或包含。

------------------------------------------------------------------------------//准备基本参数。

(1、读取Excel数据到DataSet中来,2、将DataSet中的数据一次性写入到SqlServer中。

)string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +filepath+";Extended Properties=Excel 8.0;";OleDbConnection conn = new OleDbConnection(strConn);conn.Open ();//以下语句中[sheet1$]是定义在Excel中的数据表名称,并且第一行需要包含列名,空行(特别是最后的空行),都需要删除,保证数据区域的方块性。

OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [sheet1$]", strConn);DataSet ExcelDataSet = new DataSet();myCommand.Fill(ExcelDataSet);//建立写SqlServer的连接。

strConn=System.Configuration.ConfigurationSettings.AppS ettings["linktodata"].ToString();SqlConnection sqlConnection=new SqlConnection(strConn);string strSQL="select * from personinfo where 1=0";//两个数据表一定要具有相同的结构.特别是数据类型.如果personinfo表中存在数据,则先要执行删除.SqlDataAdapter sqlDataAdapter=new SqlDataAdapter(strSQL,sqlConnection);//建立适配器中Sql语句。

将Excel文件数据导入到SqlServer数据库的三种方案

将Excel文件数据导入到SqlServer数据库的三种方案

将Excel⽂件数据导⼊到SqlServer数据库的三种⽅案最近在⼀个项⽬中需要⽤到Excel⽂件导⼊数据库的功能,本⼈很懒,所以到⽹上搜了⼀堆⽅法,但是通过对⽐,觉得⼀下三种是⽐较好⽤或者不是很常见的⽅法,希望对⼤家有所帮助。

⽅案⼀:通过OleDB⽅式获取Excel⽂件的数据,然后通过DataSet中转到SQL Server,这种⽅法的优点是⾮常的灵活,可以对Excel表中的各个单元格进⾏⽤户所需的操作。

1. openFileDialog = new OpenFileDialog();2. openFileDialog.Filter = "Excel files(*.xls)|*.xls";3.4. if(openFileDialog.ShowDialog()==DialogResult.OK)5. {6. FileInfo fileInfo = new FileInfo(openFileDialog.FileName);7. string filePath = fileInfo.FullName;8. string connExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";9.10. try11. {12. OleDbConnection oleDbConnection = new OleDbConnection(connExcel);13. oleDbConnection.Open();14.15. //获取excel表16. DataTable dataTable = oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);17.18. //获取sheet名,其中[0][1]...[N]: 按名称排列的表单元素19. string tableName = dataTable.Rows[0][2].ToString().Trim();20. tableName = "[" + tableName.Replace("'","") + "]";21.22. //利⽤SQL语句从Excel⽂件⾥获取数据23. //string query = "SELECT classDate,classPlace,classTeacher,classTitle,classID FROM " + tableName;24. string query = "SELECT ⽇期,开课城市,讲师,课程名称,持续时间 FROM " + tableName;25. dataSet = new DataSet();26.27. //OleDbCommand oleCommand = new OleDbCommand(query, oleDbConnection);28. //OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);29. OleDbDataAdapter oleAdapter = new OleDbDataAdapter(query,connExcel);30. oleAdapter.Fill(dataSet,"gch_Class_Info");31. //从excel⽂件获得数据后,插⼊记录到SQL Server的数据表32. DataTable dataTable1 = new DataTable();33.34. SqlDataAdapter sqlDA1 = new SqlDataAdapter(@"SELECT classID, classDate,35. classPlace, classTeacher, classTitle, durativeDate FROM gch_Class_Info",sqlConnection1);36.37. //SqlCommandBuilder sqlCB1 = new SqlCommandBuilder(sqlDA1);38.39. sqlDA1.Fill(dataTable1);40.41. foreach(DataRow dataRow in dataSet.Tables["gch_Class_Info"].Rows)42. {43. DataRow dataRow1 = dataTable1.NewRow();44.45. dataRow1["classDate"] = dataRow["⽇期"];46. dataRow1["classPlace"] = dataRow["开课城市"];47. dataRow1["classTeacher"] = dataRow["讲师"];48. dataRow1["classTitle"] = dataRow["课程名称"];49. dataRow1["durativeDate"] = dataRow["持续时间"];50.51. dataTable1.Rows.Add(dataRow1);52. }53.54. Console.WriteLine("新插⼊ " + dataTable1.Rows.Count.ToString() + " 条记录");55. sqlDA1.Update(dataTable1);56.57. oleDbConnection.Close();58.59. }60. catch(Exception ex)61. {62. Console.WriteLine(ex.ToString());63. }64. }⽅案⼆:直接通过SQL语句执⾏SQL Server的功能函数将Excel⽂件转换到SQL Server数据库。

SQL_Server数据与Excel表的导入导出

SQL_Server数据与Excel表的导入导出

SQL_Server数据与Excel表的导入导出SQL Server与Excel的数据交换几乎所有的数据库管理者或者是与数据库打过交道的朋友,几乎都或多或少的了解并使用过数据导入导出的功能以便完成支持诸如数据合并、归档和分析等任务,以及开发应用程序或升级数据库或服务器,而这一切的便利都已经被SQL Server中的数据转换服务(DTS)囊括其中,它提供了一套图形化工具和可编程对象,以帮助管理员和开发人员和需要进行数据维护的人员解决数据移动问题,其中包括将数据从分散的数据源中提取出来,并且转换、合并到一个或多个目标位置。

可以将任务组、工作流操作以及约束条件收集起来形成DTS 软件包,然后安排它定期运行或在某些事件发生后运行。

首先我们来先认识一下什么是DTS,它是一组工具,用于在一个或多个数据源(如Microsoft SQL Server、Microsoft Excel或Microsoft Access)间导入、导出和转换各种数据。

通过OLE DB(一种数据访问的开放式标准)提供连接,通过用于ODBC的OLE DB 提供程序来支持ODBC(开放式数据库连接)数据源。

在这里我们将以具体的实例来介绍DTS数据的导入导出功能。

例:使用DTS向导导出自己建立的dmtjxxb数据库中的dmtjxxb_register 表,到Excel表中。

操作步骤为:(1)启动SQL Server企业管理器(Enterprise Manager)后,点击SQL Server组,选择指定的服务器,如此次操作的数据库是我本地的数据库,如图:SQL Server企业管理器本地数据库选中要导出的数据库名称,点击鼠标右键,在弹出的菜单点击“所有任务”选择“导出数据”选项,如下图所示,就会弹出数据导入导出向导。

(2)单击“下一步”按钮,打开选择数据源对话框,如下图所示:首先在“数据源”旁的下拉列表中选择数据源。

在本例中选择Microsoft OLE DB Provider for SQL Server。

如何把excel导入数据库的方法

如何把excel导入数据库的方法

如何把excel导入数据库的方法
在Excel中录入好数据以后经常需要把数据导入到数据库里进行管理,或许有的朋友不知道该如何把Excel导入到数据库里头。

下面是由店铺分享的如何把excel导入数据库的方法,以供大家阅读和学习。

如何把excel导入数据库的方法:
Excel导入数据库步骤1:首先打开SQL SERVER 的企业管理器,到你要导入数据的数据库的表上右键,选择所有任务,导入数据。

在弹出的对话框上点击下一步。

Excel导入数据库步骤2:选择数据源为EXCEL如图所示。

Excel导入数据库步骤3:选择要导入的EXCEL文件
Excel导入数据库步骤4:输入你的数据库的登入信息
Excel导入数据库步骤5:选择第一个项目(从源数据库复制表和视图),然后点下一步
Excel导入数据库步骤6:选择你要导入的表的第几页,其中目的表是可以修改的,如果要转换其中的数据,点后面的小方块,上面有三个小点的小方块。

Excel导入数据库步骤7:点击下一步,完成,即可
Excel导入数据库步骤8:数据导入很快的,导入的结果会反馈给你。

点击完成。

Excel导入数据库步骤9:刷新你的数据库,这个时候你可以发现你导入的数据表已经存在并可以使用了。

用Python将Excel数据导入到SQLServer的例子

用Python将Excel数据导入到SQLServer的例子

⽤Python将Excel数据导⼊到SQLServer的例⼦使⽤环境:Win10 x64 Python:3.6.4 SqlServer:2008R2因为近期需要将excel导⼊到SQL Server,但是使⽤的是其他语⾔,闲来⽆事就尝试着⽤python进⾏导⼊,速度还是挺快的,1w多条数据,也只⽤了1s多,代码也⽐较简单,就不多解释了。

⽤到的库有xlrd(⽤来处理excel),pymssql(⽤来连接使⽤sql server)import xlrdimport pymssqlimport datetime# 连接本地sql server 地址⽤户名密码数据库conn = pymssql.connect("127.0.0.1:1433", "sa", "888888", "Test")# 建⽴cursorcursor = conn.cursor()# excel⽂件fname = "XXXX.xls"#打开⽂件bk = xlrd.open_workbook(fname)#打开⼯作表sh = bk.sheets()[0]#获取⾏数start_time=datetime.datetime.now()sql3=''# 遍历所有⾏for i in range(1,sh.nrows):a = []sql = '('# 遍历所有列for j in range(sh.ncols):# 将excel每⼀列的值⽤,隔开sql += "'" + str(sh.cell(i, j).value) + "'" + ','# 组合成sql语句(value1,value2,value3,,)sql2 = sql.strip(",")sql3 += sql2.strip()+'),'# 1000⾏执⾏⼀次sqlif i%1000==0:sql3 = sql3.rstrip(",")sql1 = "insert into Flow(ID, SaleDate,danwei,danweiname,huowuid,huowuname,chandi,guge,num,danjia,back,pihao,youxiaodate,jibendanwei,Userid,UserdanweiName,kehuquyu,kehuleixing,type) values %s " % sql3 # 执⾏sql语句cursor.execute(sql1)sql = ""sql3=""sql3 = sql3.rstrip(",")sql1 = "insert into Flow(ID, SaleDate,danwei,danweiname,huowuid,huowuname,chandi,guge,num,danjia,back,pihao,youxiaodate,jibendanwei,Userid,UserdanweiName,kehuquyu,kehuleixing,type) values %s " % sql3 cursor.execute(sql1)# commit提交变更mit()# 结束时间end_time = datetime.datetime.now()speed = end_time - start_time# 打印花费时间print(speed)以上这篇⽤Python将Excel数据导⼊到SQL Server的例⼦就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

如何将数据从 Excel 导入到 SQL Server

如何将数据从 Excel 导入到 SQL Server

本文循序渐进地演示如何用不同的方法将数据从Microsoft Excel 工作表导入到Microsoft SQL Server 数据库。

回到顶端技术说明本文中的示例使用以下工具导入Excel 数据:∙SQL Server 数据传输服务(DTS)∙Microsoft SQL Server 2005 Integration Services (SSIS)∙SQL Server 链接服务器∙SQL Server 分布式查询∙ActiveX 数据对象(ADO) 和Microsoft OLE DB Provider for SQL Server∙ADO 和Microsoft OLE DB Provider for Jet 4.0回到顶端要求下面的列表列出了推荐使用的硬件、软件、网络架构以及所需的Service Pack:∙Microsoft SQL Server 7.0、Microsoft SQL Server 2000 或Microsoft SQL Server 2005 的可用实例∙Microsoft Visual Basic 6.0(针对使用Visual Basic 的ADO 示例)本文的部分内容假定您熟悉下列主题:∙数据传输服务∙链接服务器和分布式查询∙Visual Basic 中的ADO 开发回到顶端示例导入与追加本文使用的示例SQL 语句演示了“创建表”查询。

该查询通过使用SELECT...INTO...FROM 语法将Excel 数据导入新的SQL Server 表。

如这些代码示例所示,在继续引用源对象和目标对象时,可以通过使用INSERT INTO...SELECT...FROM 语法将这些语句转换成追加查询。

使用DTS 或SSIS可以使用“SQL Server Data Transformation Services (DTS) 导入向导”或“SQL Server 导入和导出向导”将Excel 数据导入到SQL Server 表中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

怎样把Excel文件资料导入SQL Server2008的数据库的表中
1.Excel导入SQLserver的表中前,保证Excel的表中列的顺序和数据库表的列的顺序保持一致,如果该列
没有值,可以为空白。

2.打开SQL企业管理器(Microsoft SQL Server Management Studio )
建议用SA身边登陆,如果Windows NT用户具有同等权限也可以
3.登陆服务后,展开数据库服务器,会在最底下找到“管理”选项,单击右键,选择“导入数据(I)”选项
4.单击数据导入选项后,会出现导入向导画面,直接单击“下一步”
5.选择数据如下图
1)在选择数据源时,请选择Microsoft Excel,因为我们的主题就是Excel导入SQL server 2)浏览要导入的Excel文件路径
3)选择您要导入的Excel版本
4)单击“下一步”
4)数据源类型的选择列表
5).Excel版本选择列表
6.选择导入的目标
1).选择导入的目标服务器的名称,没有显示可以手工输入的
2).身份验证,建议使用windows身份验证
3).选择要导入数据的数据库(Database)
4).单击“下一步”
7.指定表复制查询,因为本文讲述的是Excel的导入不要写SQL查询,默认选择即可,单击“下一步”
8.选择源表和源视图
1)本文讲述的是从Excel导入,请选择对应的源表Sheet 1$
2)选择目标源,请选择您要导入的数据表的名称
3)如果有需要预览源数据,请单击右下边的“预览(P)”
4).数据源的预览效果,如果发现数据源与表的结构不一致时,请及时调整Excel 的格式。

9.查看数据类型映射
这一步基本是系统显示目标源的数据结构和类型其次选择出错的处理方案,失败,忽略
单击“下一步”
10.保持并运行,是否要立刻运行。

11.完成向导,执行操作并保存数据
12.执行操作的结果报告
13.数据库中执行查询操作的显示结果,检查导入的数据是否正确,如有问题及时调整。

完,谢谢浏览阅读!。

相关文档
最新文档