导入一个文本文件到SQL Server数据库
- 格式:doc
- 大小:291.50 KB
- 文档页数:10
数据导入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中的数据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资料库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提供了多种方法来导入外部数据,以下是其中几种常用的方法: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数据库导出和导入教程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语句将数据从一个表导入到另一个表中。
将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数据库。
一、不定项选择题1.create trigger语句中的with encryption参数的作用是[ ]A.加密触发器文本B.加密定义触发器的数据库C.加密定义触发器的数据库的数据D.以上都不对2.下列有关触发器的说法,错误的是[ ]A.触发器是一种特殊的存储过程,它可以包含if、while、case的复杂的T-sql 语句B.使用触发器需要两步:先创建触发器,然后调用触发器C.如果检测到修改的数据不满足业务规则,触发器可以回滚,进行撤销操作D.使用触发器可以创建比check约束更复杂的高级约束。
3.当执行update触发器语句时,系统将自动创建[ ]逻辑表A.tempB.deletedC.holdD.inserted4.update触发器能够对下列[ ]修改进行检查A.修改数据库名称B.修改表中的某行数据C.修改表中的某列数据D.修改表结构5. 在“连接”组中有两种连接认证方式,其中在[ ]方式下,需要客户端应用程序连接时提供登录时需要的登录账户和密码。
A.Windows身份验证B.SQL Server 身份验证C.以超级用户身份登录时D.其他方式登录时6. 下列[ ]不是SQL SERVER 的身份验证模式。
A.Windows身份验证B.SQL Server 身份验证C.混合身份验证模式D.IPSEC身份验证模式7. 关于登陆账户和数据库用户,下面表述错误的是[ ]。
A.登陆账户是在服务器级创建的,数据库用户是在数据库级创建的 B.创建数据库用户时必须存在该用户的登陆账户C.用户和登陆账户必须同名D.一个登陆账户可以对应多个数据库用户8.下列[ ]固定服务器角色具有创建数据库的权限A.BulkAdminB.DbcreatorC.DiskAdminD.ServerAdmin9.下列[ ]数据库角色就有创建表的权限A.db_accessadminB.db_datawriteC.db_ddladminD.db_owner10.SQL Server的权限可以被[ ]A.授予B.回收C.拒绝D.删除11. [ ]备份类型支持把数据库还原到某个特定的时间点。
sqlserver数据的导入导出命令sql server 数据的导入导出命令一、将.dbf(foxpro数据文件)导入到sql server中:-------------如果接受导入数据的SQL表不存在,导入时创建select * into 要生成的SQL表名 from openrowset('MSDASQL','Driver=Microsoft Visual F oxPro Driver;SourceType=DBF;SourceDB=c:\','select * from dbf表名.DBF')实例:--导入mdf数据文件select * into t_tdd from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=d:\我的文档\桌面\宁夏第一次数据','select * from [t_tdd.DBF]')在执行命令前,要下载了一个microsoft ole db provider for visual foxpro安装,可以了。
在使用该命令时,有时会出现如下错误提示:SQL Server 阻止了对组件'Ad Hoc Distributed Queries' 的STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。
系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。
有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。
C#中读取⽂本⽂件导⼊SQL数据库解决⽅法概述:⽂本⽂件是⼀种⾮常常⽤的⽂件格式,因其通⽤的阅读⽅式⽽经常被⽤做不同单位的数据交换⽂件格式。
⽂本⽂件需要能够正确导⼊数据库,必须要满⾜以下两个条件其中之⼀:1:⽂本⽂件的结构格式固定,长度固定.2:⽂本⽂件每⾏长度不固定,但每个字段之间有特殊符号分开.本⽂给出的是满⾜条件1的⽂本⽂件导⼊到数据库的解决⽅法,对于满⾜条件2的⽂本⽂件,道理类似,有兴趣的朋友可以⾃⾏测试,如有问题,欢迎交流和沟通!⼀:问题描述:这是⽼婆⼤⼈单位的⼀个项⽬,需求其实还是⽐较清晰的:要求编写程序,⾃动读取每天⽣成的⽂本⽂件,根据业务逻辑处理后,保存到SQLSERVER数据库。
⽂本格式定义:1:每⼀⾏具有相同固定格式,⼀⾏就对应于数据库中的⼀条记录,记录的每个字段都有明确的长度定义。
2:每⼀⾏⽂本都是连续的,中间没有任何的特殊的符号来区分不同的字段。
3:⽂本中有英⽂字母和数字,也可能有中⽂汉字。
4:格式规定,⼀个英⽂字母或数字对应的长度为1,中⽂汉字对应的长度为2.根据项⽬需求分析,整个需求并不复杂,⼀般来说,⽂本⽂件需要能够正确导⼊数据库,必须要满⾜以下两个条件其中之⼀:1:⽂本⽂件的结构格式固定,长度固定.2:⽂本⽂件每⾏长度不固定,但每个字段之间有特殊符号分开.上述需求满⾜条件1,肯定可以能正确导⼊到数据库。
⼆:初步的解决思路和步骤1:读取⽂本⽂件内容到数据流StreamReader2:开始事务3:循环从数据流中读取每⼀⾏到字符串,按表结构定义通过SubString函数对字符串进⾏截取到每⼀个字段变量。
4:定义SQL存储过程,传⼊步骤3中的每个字段值,在存储过程中完成每条记录的插⼊!5:执⾏事务6:事务回滚7:错误消息捕捉,返回友好信息提⽰8:释放相关资源三:实际开发中出现的问题与解决⽅法问题:实际的程序中,按照⽂本⽂件定义的字段长度进⾏字符串截取,取出来的字符串长度与实际长度不⼀致,不论是使⽤bg2312编码还是默认编码。
如何将一个DBF库中的数据导入到SQL SERVER服务器中
1、打开SQLSERVER的企业管理理,在数据转换服务单击鼠标右键,选择导入数据,出现以下画面:
2、点“下一步”,如下图所示,选择数据源为dbase III,(若是EXCEL文件,请选择excel ),并在文件名处输入源DBF数据文件所在的路径。
3、点“下一步”,如下图所示,选择目的为“用于SQL SERVER的Microsoft OLE DB提供程序”,并选择服务器为实际要导入的SQL服务器名称,如“QYB10”,并输入连接用户名和密码,选择相应的数据库,临时数据最好放在tmp2k库中。
4、点“下一步”,如下图所示,选择“从源数据库复制表和视图”。
5、点“下一步”,如下图所示,选择相应的DBF库,其中目的栏表示导入的数据放在哪个库和哪张表中,边上转换按钮可以修改字段名,也可不选按默认,则与DBF中的字段名一
致。
6、点“下一步”,如下图所示。
7、点“下一步”,如下图所示。
8、点“完成”后,如下图所示。
若SQL中对应的表不存在,会自动创建的。
至此数据导入完成。
可进行其它操作了。
大白话系列—C#编写Excel数据导入SQL Server数据库【完整代码附在文档最后】大白话系列宗旨:打破自身基础高低的壁垒,用最简单白话的语言,让最低基础的童鞋也能轻松编程。
项目描述:在我们日常的数据库工作中经常会遇到这种问题:存放在Excel表格中的大量数据需要导入进数据库表中,如果靠人工去输入无疑会产生巨大的工作量,而且也增大了数据错误的概率。
本项目旨在通过C#编写小软件,从而实现将本地Excel表格中数据快速导入到数据库表中。
本示例使用SQL Server数据库。
环境:VS2010、SQL Server2008详细步骤(完整代码附在文档最后):(完整代码附在文档最后)一、建立数据库1、打开SQL Server 2008下的SQL Server Management Studio,连接进入主界面。
2、在主界面左侧找到“数据库”文件夹,右键点击“新建数据库”,并对数据库进行命名,此处命名为“TTT”。
3、点击“确定”,即建立了一个名为“TTT”的数据库。
二、新建数据表(完整代码附在文档最后)1、在主界面左侧的“TTT”文件夹下找到“表”文件夹,右键点击,选择“新建表”,此时弹出窗口对该表命名,此处命名为“dbo.Sheet1$”2、在弹出的界面中给新建表添加列名及其类型,并保存。
此表中的列名数要与需导入的Excel中列数相同。
范例如图:三、新建C #项目(完整代码附在文档最后)1、找到并打开VS2010软件,新建项目。
2、在弹出的窗口中左侧选择Visual C#下的Windows,然后在右侧选择“Windows窗体应用程序”,然后在下侧修改项目名称。
点击确定,即创建了一个窗体。
四、给窗体添加控件(完整代码附在文档最后)1、在主界面左侧找到工具箱(若无工具箱,可在主界面“视图”选项卡下选择“工具箱”即可显示),在工具箱中找到dataGridVIew 控件双击,即可在窗体中添加该控件。
该控件作为Excel数据插入过程的中继。
将txt文件导入sql server数据库的sql代码导入sql2000的代码:BULK INSERT 表名你的文本文件.txt' WITH ( FIELDTERMINATOR ='以什么符号分割数据', ROWTERMINATOR= '以什么符号加\n结尾')--\n是回车的意思,就是回车前面是什么符号,如果没符号直接单引号\n例如:BULK INSERT bb FROM 'F:\2008-02-18.txt' WITH ( FIELDTERMINATOR=',', ROWTERMINATOR= ',\n')bb是表名,f盘中的F:\2008-02-18.txt文件,FIELDTERMINATOR =','每个数据是以逗号分隔的,ROWTERMINATOR= ',\n'每行数据以逗号回车结尾。
使用BULK INSERT用法如下:stu.txt 结构1,Jim2,Kate3,Tom...BULK INSERT dbo.TABLE1FROM 'd:\stu.txt'WITH (FIELDTERMINATOR = ',',ROWTERMINATOR = '\n')查看table1里的数据select * from table1就ok了。
在C#-web项目中将txt文件和excel文件导入SQL2000数据库。
1.数据库准备在SQL2000数据库的实例数据库pubs中建立一个数据表txtInsert,字段很简单:id,name两个。
2.txt文本文件导入对于数据文件导入与导出SQL2000提供了BULK INSERT和BCP语句,在这里可以使用BULK INSERT命令实现。
假设在c盘上有一个文本文件stu.txt内容为:1,tom2,jack3,jhon......实现导入的C#代码如下:protected System.Web.UI.HtmlControls.HtmlInputFile fName;protected System.Web.UI.WebControls.Button BtnInsert;//上面两个控件自己添加代码private void BtnInsert_Click(object sender, System.EventArgs e){string fPath=this.fName.PostedFile.FileName;//获得要导入的文本文件string extName=fPath.Substring(stIndexOf(".")+1); //获得文件的扩展名SqlConnection con=new SqlConnection("server=.;database=pubs;uid=sa;pwd=;");//数据库连接对象con.Open();try{SqlCommand com=new SqlCommand("BULK INSERT pubs.d bo.txtInsert FROM '"+fPath+"' WITH (FIELDTERMINATOR = ',',ROWTERMINATOR= '\n')",con);//其中的 FIELDTERMINATOR=','指明字段间所使用的分隔符为逗号//其中 ROWTERMINATOR= '\n'指明记录间所使用的分隔符为回车com.ExecuteNonQuery();Response.Write("<script language=javascript& gt;alert('数据导入成功!')</script>");}catch (SqlException SQLexc){Response.Write("导入数据库时出错:" + SQLexc.ToString());}con.Close();}excel文件的导入中介绍:3.excel 文件的导入在c盘里建立一个stu.xls文件,在sheet1工作表中有两列数据如下:编号姓名1 tom2 jack3 john......将txtInsert数据库表中的id字段设置为主键。