导入一个文本文件到SQL Server数据库

合集下载

数据导入SQL实现参考

数据导入SQL实现参考

数据导入SQL实现参考在进行数据处理和分析时,我们经常需要将数据导入到SQL数据库中进行存储和查询。

下面是一些常见的数据导入SQL实现方法的参考。

1. 使用SQL导入工具:大多数SQL数据库管理系统都提供了内置的工具来导入数据。

例如,MySQL提供了mysqlimport命令行工具,可以从CSV、Excel和MySQL Dump文件中导入数据。

使用这些工具,你只需要提供要导入的文件路径和数据库表的名称,然后工具会自动将数据导入到指定的表中。

2. 使用ETL工具:ETL(Extraction, Transformation, and Loading)工具是专门用于数据导入和整理的软件。

常见的ETL工具包括Pentaho Data Integration、IBM DataStage、Informatica等。

这些工具具有可视化的界面,可以通过拖拽组件来设置数据导入的流程,例如从文件中读取数据、进行数据清洗和转换,最后将数据写入数据库中。

3. 使用编程语言的数据库接口:几乎所有的编程语言都提供了与SQL数据库交互的接口,例如Python的MySQLdb、Java的JDBC、PHP的PDO等。

通过使用这些接口,你可以编写代码来读取数据文件,然后使用SQL语句将数据插入到数据库中。

例如,使用Python的MySQLdb接口,可以使用以下代码将数据导入到MySQL数据库中:```pythonimport MySQLdb#连接数据库db = MySQLdb.connect(host="localhost", user="username", passwd="password", db="database")#获取数据库游标cursor = db.cursor#读取数据文件with open("data.csv", "r") as file:#遍历文件中的每一行for line in file:#拆分每一行的数据data = line.strip(.split(",")#构造插入数据的SQL语句sql = "INSERT INTO table_name (column1, column2, column3) VALUES (%s, %s, %s)"#执行SQL语句cursor.execute(sql, (data[0], data[1], data[2]))#提交事务#关闭数据库连接db.close```4. 使用ORM工具:ORM(Object-Relational Mapping)工具可以将对象和数据库中的表进行映射,简化了数据库操作的过程。

如何将EXCEL中的数据直接导入 SQL SERVER 2000中的数据库

如何将EXCEL中的数据直接导入 SQL SERVER 2000中的数据库

先读取EXCEL中的数据private void btnView_Click(object sender, System.EventArgs e){dgExcelData.DataSource = null;FileDialog dlgOpen = new OpenFileDialog();dlgOpen.Filter="Excel Files (*.xls)|*.xls";if(dlgOpen.ShowDialog() == DialogResult.OK){txtPath.Text=dlgOpen.FileName;string strCon = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = "+txtPath.Text.Trim()+";Extended Properties=Excel 8.0" ; OleDbConnection myConn = new OleDbConnection();try{this.Cursor = Cursors.WaitCursor;//创建一个数据Excel连接****************************************************************** myConn = new OleDbConnection ( strCon ) ;string strCom = " SELECT * FROM [Sheet1$]" ;myConn.Open ();//打开连接得到数据集合oDS.Clear();OleDbDataAdapter myCommand = new OleDbDataAdapter( strCom , myConn ) ;myCommand.Fill ( oDS , "[Sheet1$]" ) ;//关闭连接myConn.Close ( ) ;if (!oDS.Tables[0].Columns.Contains("Insert Result"))oDS.Tables[0].Columns.Add("Insert Result");dgExcelData.SetDataBinding(oDS,"[Sheet1$]");btnOk.Enabled = true;this.Cursor = Cursors.Arrow;inifrom();}catch(Exception err1){MessageBox.Show(err1.Message);myConn.Close();this.Cursor = Cursors.Arrow;}}//END}sql中右键所有任务导入数据选择EXCEL版本即可下面是导出真正Excel文件的方法: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]GO/*--数据导出EXCEL导出表中的数据到Excel,包含字段名,文件为真正的Excel文件,如果文件不存在,将自动创建文件,如果表不存在,将自动创建表基于通用性考虑,仅支持导出标准数据类型--邹建 2003.10(请保留此信息)--*//*--调用示例p_exporttb @tbname= '地区资料 ',@path= 'c:\ ',@fname= 'aa.xls ' --*/create 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),@f dlist 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= " '+@sql+ ' ";DBQ= '+@sqlelseset @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 8.0;HDR=YES '+ ';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+ ',[ '++ '] '+casewhen like '%char 'then case when a.length> 255 then 'memo 'else 'text( '+cast(a.length as varchar)+ ') ' endwhen like '%int ' or = 'bit' then 'int 'when like '%datetime ' then 'datetime 'when like '%money ' then 'money 'when like '%text ' then 'memo 'else endFROM syscolumns a left join systypes b on a.xtype=b.x usertypewhere not in( 'image ', 'uniqueidentifier ', 'sql_variant ', '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 8.0;HDR=YES;IMEX=1;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,@fdlistgoif exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[p_exporttb] ') and OBJECTPROPERTY(id, N'IsProcedure ') = 1)drop procedure [dbo].[p_exporttb]GO/*--数据导出EXCEL导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件如果文件不存在,将自动创建文件如果表不存在,将自动创建表基于通用性考虑,仅支持导出标准数据类型--邹建 2003.10(请保留此信息)--*//*--调用示例p_exporttb @sqlstr= 'select * from 地区资料 ',@path= 'c:\ ',@fname= 'aa.xls ',@sheetname= '地区资料 '--*/create proc p_exporttb@sqlstr varchar(8000), --查询语句,如果查询语句中使用了order by ,请加上top 100 percent@path nvarchar(1000), --文件存放目录@fname nvarchar(250), --文件名@sheetname varchar(250)= ' ' --要创建的工作表名,默认为文件名asdeclare @err int,@src nvarchar(255),@desc nvarchar(255),@out intdeclare @obj int,@constr nvarchar(1000),@sql varchar(8000),@f dlist varchar(8000)--参数检测if isnull(@fname, ' ')= ' ' set @fname= 'temp.xls 'if 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= " '+@sql+ ' ";DBQ= '+@sqlelseset @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 8.0;HDR=YES '+ ';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+ ') a 'exec(@sql)select @sql= ' ',@fdlist= ' 'select @fdlist=@fdlist+ ',[ '++ '] ',@sql=@sql+ ',[ '++ '] '+casewhen like '%char 'then case when a.length> 255 then 'memo 'else 'text( '+cast(a.length as varchar)+ ') ' endwhen like '%int ' or = 'bit' then 'int 'when like '%datetime ' then 'datetime 'when like '%money ' then 'money 'when like '%text ' then 'memo 'else endFROM tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertypewhere not in( 'image ', 'uniqueidentifier ', 'sql_variant ', 'varbinary ', 'binary ', 'timestamp ')and a.id=(select id from tempdb..sysobjects where name=@ tbname)if @@rowcount=0 returnselect @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 8.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 outlbexit:select cast(@err as varbinary(4)) as 错误号,@src as 错误源,@desc as 错误描述select @sql,@constr,@fdlistgo。

SQL_Server_2005数据导入导出(SQLServer2005数据库维护基础与进阶)

SQL_Server_2005数据导入导出(SQLServer2005数据库维护基础与进阶)

图11-24 选择目标对话框
图11-25 选择文件对话框
2. 导出数据库至文本文件
(4)单击“下一步”按钮,就会出现指定表复制或查询对话框。其中可以选定将源数据库中的表格 或视图复制到文本文件,还是将满足查询结果的记录复制到文本文件。 (5)单击“下一步”按钮,则出现“配置平面文件目标”对话框,如图11-26所示。如图11-27所示 在该对话框中单击“编辑转换”按钮,则出现列映射对话框.
图11-5 选择源表和视图对话框
图11-6 列映射对话框
1.导入Access数据库 (5)在图11-5中单击“ 下一步”按钮,则会出 现“保存并执行包”对 话框,如图11-7所示。 在该对话框中,可以指 定是否希望保存SSIS包 ,也可以立即执行导入 数据操作。
图11-7 “保存并执行包”对话框
1.导入Access数据库 (6)单击“下一步”按钮,则出现“包保护级别”对话框,如图11-8所示。点击“ 确定”按钮可完成包保护导级别设定,并打开“保存SSIS包”页框,如图所示。
图11-11 选择文本数据源对话框
2. 导入文本文件
(3)单击“下一步”按钮,就会出现选择目的数据库类型对话框,如图 11-12所示。这里选择为SQL Server,选定服务器名称和数据库名称后, 单击“下一步”按钮,则出现选择源表和视图对话框,如图所示。
图11-12 选择目的数据库对话框
图11-13 选择源表和视图对话框
图11-1 打开导入向导
图11-2 选择数据源对话框
数据的导入
1.导入Access数据库
(3)单击“下一步”按钮,则出现选择导入的目标数据库类型对话框,如图11-3所示。本 例使用SQL Server数据库作为目标数据库,在目标对话框中选择SQL Native Client,在服 务器名称框中输入目标数据库所在的服务器名称。下方需要设定连接服务器的安全模式以 及目标数据库的名称。设定完成后,单击“下一步”按钮,则出现指定表复制或者查询对 话框,如图11-4所示。

上传档案并储存至SQL Server资料库

上传档案并储存至SQL Server资料库

上传档案并储存至SQL Server资料库1.在数据库中储存一个档案(二进位资料)首先要定义一个image形态的栏位,并且同时Print sub…Dim FileUid as long…上传档案FileUid=getupLoadFile()Response.write(…上传OK‟)End subFunction getupLoadFile() as long…判断是否有上传资料If File.postedfile.filename=”” thenEnd if…开启资料表->档案储藏室Dim rs as Adodb.recordsetRs=openrs(“select * from档案储藏室”,2,2,me)…将上传的档案保留到记忆体Dim Buf(me.file1.postedfile.contentlength)as byteMe,file1.postedfile.inputstream.read(buf,0, me.file1.postedfile.contentlength)…新增档案Rs.addnew()…转换档案名称Dim Filename as stringIf instr (strreverse(me.file1.postedfile.filename),”\”)<>0ThenFilename=right((me.file1.postedfile.filename, instr(strreverse(me.file1.postedfile.filename),”\”)-1) ElseFilename= me.file1.postedfile.filename‘储存资料到SQL ServerRs.fields(“filename”).value=filename…档案内容Rs.fields(“FileBody”).value=bufRs.update()…取得档案编号Rs=NothingRs=OpenRs(“select * from 档案储藏室where ….. ”) If not rs.eof thenGetUploadfile=rs.fields(“uid”).valueEnd ifRe=nothingEnd function。

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会自动根据数据的格式进行数据类型的判断。

文本文件如何向数据库文件传递数据?

文本文件如何向数据库文件传递数据?

文本文件如何向数据库文件传递数据?在ASP中,可以实现文本文件到数据库文件的数据交换吗?可以,我们来看看实现的过程,主要分两步:1、在客户端建立(或转换、采集)一个或几个文本文件,将其传上传到服务器上的一个指定目录下;2、服务器读取这个(些)文本文件的数据,并存放在本机数据库里进行转换,转换完后删除这个(些)文本文件。

但要注意,一是如果文本文件太大或太多,即数据量太大,要调整转换时间;二是要做好文本文件的备份工作。

如果程序有误,在数据转换过程中没有全部转换,而后又删除了该文本文件,轻则会造成损失,重则导致事故。

txt2lib.asp<html><head><meta http-equiv="refresh" content="30;url=deltext.asp"><meta http-equiv="Content-Type"content="text/html; charset=gb_2312-80"><meta name="GENERATOR" content="Microsoft FrontPage Express 2.0"><title>精彩春风之文本文件转换数据库文件</title></head><body ><align="center"><p align="center"><font color="#FF0000">数据正在处理中,请稍候...<br></font><font color="#000000"><align="center"><%str=server.mappath("/")' 取得服务器根目录Set fso = CreateObject("Scripting.FileSystemObject")Set f = fso.GetFolder(str & "\thetext")Set fc = f.Filesk=1For Each f1 in fcfile(k)=' 得到该路径下所有文件名k=k+1next%><% ii=1%><%set fs = CreateObject("Scripting.FileSystemObject")%><%while ii<kresponse.write file(ii) & "<br>"set textinstance=fs.opentextfile(str & "\thetext\" & file(ii),1,false,false)' 打开文件来读数据while textinstance.atendofstream<> true' 如果文件没有结束visitornum=textinstance.readline' 读进一行数据j=0cd=len(visitornum)for i=1 to cdif mid(visitornum,i,1)="," then' 数据之间以","隔开j=j+1elseselect case j' 分别取得各数据值case 0me1=me1+mid(visitornum,i,1)case 1me2=me2+mid(visitornum,i,1)case 2me3=me3+mid(visitornum,i,1)case 3me4=me4+mid(visitornum,i,1)case 4me5=me5+mid(visitornum,i,1)case 5me6=me6+mid(visitornum,i,1)end selectend ifnextresponse.write me1 & " " & me2 & " " & me3 & " " & me4 & " " & me5 & " " & me6 & " " & "<br>"set cn=server.createobject("adodb.connection")cn.open "water","",""set rs=server.createobject("adodb.recordset")sql="select * from watertable"rs.open sql,cn,3,3' 打开数据库进行追加操作if rs.eof=true thenon error resume next'rs.movelastrs.movefirston error resume nextend ifrs.addnew' 增加一条记录rs("wvalue")=me1rs("wdate")=me2rs("wtime")=me3rs("zxz")=me4rs("jdh")=me5rs("czh")=me6rs.update' 更新数据rs.closeme1=""me2=""me3=""me4=""me5=""me6=""wendii=ii+1wend %><align="center"></font><font color="#FF0000">恭喜,数据处理完毕!</font> </p></body></html>deltext.asp<html><head><meta http-equiv="refresh" content="30;url=txt2lib.asp"><meta http-equiv="Content-Type"content="text/html; charset=gb_2312-80"><meta name="GENERATOR" content="Microsoft FrontPage Express 2.0"><title>精彩春风之删除文本文件</title></head><body bgcolor="#FFFFFF"><p align="center"><font color="#FF0000">文本文件正在删除中,请稍候!<br> </font><font color="#000000"><%dim file(50)' 定义最大文件数str=server.mappath("/")Set fso = CreateObject("Scripting.FileSystemObject")Set f = fso.GetFolder(str & "\thetext\")Set fc = f.Filesk=1For Each f1 in fcfile(k)=response.write file(k) & "<br>"k=k+1next%><% i=1while i<kSet fso = CreateObject("Scripting.FileSystemObject")fso.DeleteFile(str & "\thetext\" & file(i))i=i+1wend%></font><font color="#FF0000">恭喜,文件删除成功!</font></p></body></html>。

SQL2000数据库导出和导入教程

SQL2000数据库导出和导入教程

SQL2000数据库导出和导入教程SQL Server 2000是一种关系型数据库管理系统,支持大型数据库和各种应用程序。

它提供了导出和导入数据的功能,使用户可以将数据从一个数据库导出到另一个数据库,或者从一个数据库导入到另一个数据库。

下面是SQL Server 2000数据库导出和导入的教程。

导出数据:1. 打开SQL Server 2000管理工具,选择要导出数据的数据库。

2.选择“任务”菜单,然后选择“导出数据”选项。

3.在“数据源”对话框中,选择要导出的表或视图。

您还可以指定一个查询来选择特定的数据。

4.在“目标”对话框中,选择将数据导出到的目标数据库或文件。

您可以选择导出到同一服务器上的另一个数据库,或者导出到一个文件。

5.确定导出选项,例如导出可变宽度的文本文件或固定宽度的文本文件,以及使用逗号作为字段分隔符或制表符作为字段分隔符。

6.单击“完成”按钮开始导出过程。

导入数据:1. 打开SQL Server 2000管理工具,选择要导入数据的数据库。

2.选择“任务”菜单,然后选择“导入数据”选项。

3.在“数据源”对话框中,选择包含要导入的数据的数据库或文件。

如果您选择一个文件,您需要指定文件类型和文件位置。

4.在“目标”对话框中,选择要导入数据的目标表或视图。

您还可以选择创建一个新的表来存储导入的数据。

5.如果需要的话,可以在“转换”对话框中进行必要的数据转换。

例如,您可以选择将一个日期字段的格式从YYYYMMDD转换为YYYY-MM-DD。

6.确定导入选项,例如是否忽略导入中的重复行,以及在导入过程中要使用的事务类型。

7.单击“完成”按钮开始导入过程。

导出和导入数据可能会花费一些时间,具体时间取决于数据的大小和服务器的性能。

在导出和导入过程中,您可以查看进度和错误信息。

除了使用SQL Server 2000管理工具进行导出和导入,还可以使用SQL命令进行导出和导入。

例如,您可以使用SELECT INTO语句将数据导出到一个新的表中,然后使用INSERT INTO语句将数据从一个表导入到另一个表中。

使用t-sql导入多个文件数据到sql server中

使用t-sql导入多个文件数据到sql server中
insert #x exec (@query)
delete from #x where name is null
select identity(int,1,1) as id, name into #y from #x
drop table #x
set @max1 = (select max(id) from #y)
set @query =master.dbo.xp_cmdshell "dir +@filepath+@pattern + /b"
insert #x exec (@query)
delete from #x where name is null
select identity(int,1,1) as id, name into #y from #x
2
claire
a9411452711
24000.33
3
sam
a5611792711
1200.34
11
rubon
9671792711
400.14
22
mike
9418952711
4000.56
39
hsu
75611792511
1230
)
go
create table logtable
(
id int identity(1,1),
query varchar(1000),
importeddate datetime default getdate()
drop table #x
set @max1 = (select max(id) from #y)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档