sql_server_2008_导入导出数据大全
SQLServer中数据导入导出三种方法
当我们建⽴⼀个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进⾏数据检验、净化和转换时,将会⾯临很⼤的挑战。
幸好SQL Server为我们提供了强⼤、丰富的数据导⼊导出功能,并且在导⼊导出的同时可以对数据进⾏灵活的处理。
在SQL Server中主要有三种⽅式导⼊导出数据:使⽤Transact-SQL对数据进⾏处理;调⽤命令⾏⼯具BCP处理数据;使⽤数据转换服务(DTS)对数据进⾏处理。
这三种⽅法各有其特点,下⾯就它们的主要特点进⾏⽐较。
⼀、使⽤⽅式的⽐较 1. 使⽤Transact-SQL进⾏数据导⼊导出 我们很容易看出,Transact-SQL⽅法就是通过 SQL语句⽅式将相同或不同类型的数据库中的数据互相导⼊导出或者汇集在⼀处的⽅法。
如果是在不同的SQL Server数据库之间进⾏数据导⼊导出,那将是⾮常容易做到的。
⼀般可使⽤SELECT INTO FROM和INSERT INTO。
使⽤ SELECT INTO FROM时INTO后跟的表必须存在,也就是说它的功能是在导数据之前先建⽴⼀个空表,然后再将源表中的数据导⼊到新建的空表中,这就相当于表的复制(并不会复制表的索引等信息)。
⽽INSERT INTO的功能是将源数据插⼊到已经存在的表中,可以使⽤它进⾏数据合并,如果要更新已经存在的记录,可以使⽤UPDATE。
SELECT * INTO table2 FROM table1 --table1和table2的表结构相同 INSERT INTO table2 SELECT * FROM table3 --table2和table3的表结构相同 当在异构数据库之间的进⾏数据导⼊导出时,情况会变得复杂得多。
⾸先要解决的是如何打开⾮SQL Server数据库的问题。
在SQL Server中提供了两个函数可以根据各种类型数据库的OLE DB Provider打开并操作这些数据库,这两个函数是OPENDATASOURCE和OPENROWSET。
SQL Server 2008导入、导出数据库
1.使用Sql Server Management Studio 2008 连接数据库。
2.选中要导出数据的数据库节点,点鼠标右键,在菜单中选择“任务”->“生成脚本”,如图:3。
在弹出的界面中,点2次“下一步”进入如图界面中,把“编写数据的脚步”置为true。
4。
其它的操作点“下一步”即可。
下图是最后生成的Sql脚本:注意:这里一定要使用Sql Server Management Studio 2008,其它版本不行。
SQL Server 2008将数据导出为脚本从SQL SERVER 2008开始,我们就可以很方便的导出数据脚本,而无需再借助存储过程(但是SQL Server 2012和SQL Server 2008的导出脚本的过程还有一点细微的差别)开始:选择要操作的数据库--右键--》任务---》生成脚本这个编写数据脚本改为是true,表示是表里的数据也一起生成sql脚本然後再下一步>>這裡自己选择脚本的保存路径, 然后下一步>>下一步>>完成就得了~下面是导入sql server 2008如何导入mdf,ldf文件将mdf,ldf文件导入到sql server 2008数据库当中(1)选择右击数据库(2)然后点击“附加”。
出现下面的界面。
然后选择添加,添加上你要添加的mdf文件即可。
Sqlserver2008附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法Sql Server2008附加数据库文件时弹出错误信息:如下图:可能大家都遇到过这种问题,解决方案如下:方案一:切换登录方式出现这种情况是由于用“混合验证方式”(SQL Server身份验证)登录数据库造成的,只要将登录方式改为“windows 身份验证方式”登录即可解决该问题,附加成功后再换用“混合验证模式”登陆就没问题了。
方案二:修改服务选择所有程序-SQL Server 2005-配置工具-选择"SQL Server Configuration Manager"或者“SQL Server 配置管理器”,打开“SQL Server Configuration Manager”配置界面,在左侧选择"SQL Server 2008 服务",在右侧右击打开“SQL Server (SQLEXPRESS)”的属性,在内置账户处将网络服务--”Network Service”改为本地系统--"Local System",点击“重新启动”后再附加数据库就OK了。
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不知道可不可以。
SQL Server 2008数据库 怎么样导出Excel表格数据
SQL Server 2008数据库怎么样导出Excel表格数据方法一:查询完之后在结果栏里按CTRL+A将结果全选,按右键选择“将结果另存为...”,然后保存为“*.csv”文件,就可以用excel打开了。
或者“连同标题一起复制”,然后将结果拷贝到excel表中就可以了。
方法二:登录到数据库SQL Server 2008 中,图片中的‘.’表示local的意思。
1. 2在需要操作的数据库上右键之后选择任务再之后导出数据功能,例子中以DB_Test数据库做演示。
2. 3进入SQL Server 2008的数据导入与导出向导,之后点击下一步(next)。
3. 4选择服务器名称为local,例子中是'.',数据库为DB_Test。
实际中以真实数据库为主,以上只是演示实例,之后点击下一步。
4. 5选择导出的目标为Excel,数据库为默认值即可,选择Excel的文件路径之后点击下一步按钮继续操作。
5. 6下一个页面采用默认设置,之后点击下一步按钮。
选择数据库中即将要导出数据的具体表,可以通过预览按钮查看数据,之后点击下一步按钮。
6.7之后点击下一步,再之后选择立即运行按钮与下一步。
再点击完成按钮,最后点击关闭按钮即可。
7.8最后,打开我们的Excel表格文件,验证数据,可以看到图片中已经有数据了,这样SQL Server 2008已经正确导出数据来了。
END经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
举报作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
sql server 2008 导入导出数据大全
sql server 2008 导入导出数据大全/******* 导出到excelEXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q - S"GNETDATA/GNETDATA" -U"sa" -P""'/*********** 导入ExcelSELECT *FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel5.0')...xactions/*动态文件名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=Excel5.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=Excel5.0')...xactions/** 导入文本文件EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa - 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;UserID=Admin;Password=;')...产品********************* 导入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 satisfied </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 @idoc/**********************Excel导到Txt****************************************/想用select * into opendatasource(...) from opendatasource(...)实现将一个Excel文件内容导入到一个文本文件假设Excel中有两列,第一列为姓名,第二列为很行帐号(16位)且银行帐号导出到文本文件后分两部分,前8位和后8位分开。
SQL SERVER 数据转换 数据导入与导出
SQL Server 数据转换
(4)选定目标数据库后,单击“下一步”按钮, 选定目标数据库后,单击“下一步”按钮, 则出现指定表复制或查询对话框,如图9-32所示。 所示。 则出现指定表复制或查询对话框,如图 所示 单击“下一步”按钮, (5)单击“下一步”按钮,则出现选择源表和 视图对话框,如图9-33所示。 所示。 视图对话框,如图 所示 单击“下一步”按钮,则会出现保存、 (6)单击“下一步”按钮,则会出现保存、调 度和复制包对话框,如图9-36所示。 所示。 度和复制包对话框,如图 所示 单击“下一步”按钮, (7)单击“下一步”按钮,就会出现导出向导 结束对话框,如图9-37所示。 所示。 结束对话框,如图 所示
2. 导入文本文件数据库
启动企业管理器,展开选定的服务器, (1)启动企业管理器,展开选定的服务器, 用右键单击该服务器图标, 用右键单击该服务器图标,从快捷菜单中选择 所有任务( 所有任务(all tasks),然后再从子菜单中选 ) 择导入数据,启动数据导入向导工具, 择导入数据,启动数据导入向导工具,就会出 现欢迎使用向导对话框,如图9-1所示 所示。 现欢迎使用向导对话框,如图 所示。 单击“下一步”按钮, (2)单击“下一步”按钮,则出现选择数据 源对话框,如图9-18所示。 所示。 源对话框,如图 所示 在图9-18中单击“下一步”按钮,则出 中单击“ (3)在图 中单击 下一步”按钮, 现选择文件格式对话框,如图9-20所示。 所示。 现选择文件格式对话框,如图 所示 单击“下一步”按钮, (4)单击“下一步”按钮,则出现指定列分 隔符对话框,如图9-21所示。 所示。 隔符对话框,如图 所示
图9-10 选择目标数据库对话框
SQL Server 数据转换
图9-11 指定表复制或查询对话框
sql2008数据库表结构导入导出
Sql2008数据库表结构导出导入
昨天做了件很悲催的事情,用了drop table语句,将OA系统中的WorkPlan表删除,当然,数据是全部丢了,现在最主要的事情是赶紧恢复表,刚刚开始时手动建表,建好后前台输入数据还是无法存储,分析原因是由于表结构变化导致的,由于此表关联了好几张表,因此,只要表结构发生变化,数据将无法存储。
因此,只有找以前的数据库备份,将备份的表结构导出,再倒入到OA数据库即可,具体操作如下:
1.将备份数据库倒入sql Server2008数据库,即ecology71
2.找到备份数据库的WorkPlan表
3.右键:【编写表脚本为】-【CREATE到】-【新查询编辑器的窗口】
4.将创建的脚本全部复制
5.打开已删除WorkPlan表的数据库ecology70,选中【表】
6.点【新建查询语句】
7.将刚刚复制的脚本粘贴到打开的【新建查询语句工作区】
8.注意:将数据库名称改为ecology70,此处的名称为复制时的数据库名称
9.改名后刷新数据库,即可。
另外,刚刚导入的ecology71参考数据库也已删除。
sqlserver导出导入数据方法
一、导出导入SQL Server里某个数据库1.在SQL Server企业管理器里选中要转移的数据库,按鼠标右键,选所有任务->备份数据库。
2.备份选数据库-完全,目的备份到按添加按钮文件名在SQL Server服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是bak)重写选重写现有媒体最后按确定按钮。
如果生成的备份数据库文件大于1M,要用压缩工具压缩后再到Internet上传输。
3.通过FTP或者remote desktop或者pcanywhere等方法把第二步生成的备份数据库文件或者其压缩后的文件传到目的SQL Server数据库,如果有压缩要解压。
4.目的SQL Server数据库如果还没有此数据库,先创建一个新的数据库;然后选中这个新创建的数据库,按鼠标右键,选所有任务->还原数据库还原->从设备->选择设备->磁盘->添加(找到要导入的备份数据库文件名)->确定还原备份集->数据库-完全最后按确定按钮。
完全的数据库导入成功了。
(如果在已经存在的SQL Server数据库上还原数据库可能遇到有还有其它人正在使用它而恢复操做失败,可以去看->管理->当前活动->锁/对象->找到数据库下锁的进程号->到查询分析器里用kill进程号杀掉这些锁,然后再做还原)注意:如果在原有的目的SQL Server数据库上从备份文件(*.bak)还原数据库会把已经存在的表、存储过程等数据库对象全部替换成最近这次导入的备份数据库里的内容。
如果一定要还原备份文件(*.bak)里部分数据,需要另外建一个新数据库,其逻辑名称和数量同备份文件(*.bak)里数据库的逻辑名称和数量一致;新数据库的物理文件名称取得一定要和备份文件(*.bak)里数据库的物理文件不一样才行。
二、导出导入SQL Server里某个表1.没有防火墙,同一个局域网里或不在同一个局域网里,但通过Internet可以互相访问在SQL Server企业管理器里选中目的数据库,按鼠标右键,选所有任务->导入数据-> 弹出数据转换服务导入/导出向导窗口->下一步->选数据源-> 数据源(用于SQL Server的Microfost OLE DB 提供程序)->服务器(可选择局域网内能访问到的所有SQL Server服务器,或者直接输入IP地址)->选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->选择目的->目的(用于SQL Server的Microfost OLE DB提供程序)->服务器(默认为上一步里选中的导出服务器,也可以选其它局域网内能访问到的所有SQL Server服务器,或者直接输入IP地址)->目的数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步->选择源表和视图->在要导入的表和视图前面选中源->目的出现同样的表名(可以手工修改成别的表名)->转换->列映射和转换里面可以修改源表和目的表之间字段的对应关系,修改目的表字段的类型和长度等,并可以选择创建目的表,在目的表中增加行,除去并重新创建目的表,启用标志插入等选项->确定->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出导入数据,选调度DTS包以便以后执行)->保存(可以不选)->[ 保存DTS包(如果以后还要转移这批相同的数据,可以把本次导出导入的内容和步骤保存起来,存到SQL Server即可,保存的时候要输入DTS的包名及详细描述)->下一步-> ]->完成正在执行包->图形界面显示创建表及插入记录的步骤和状态->完成2.经过防火墙,不在同一个局域网里①、导出表里的数据到文本文件:在SQL Server企业管理器里选中目的数据库,按鼠标右键,选所有任务-> 导入数据->弹出数据转换服务导入/导出向导窗口->下一步->选数据源-> 数据源(用于SQL Server的Microfost OLE DB提供程序)->服务器(可选择局域网内能访问到的所有SQL Server服务器)->选择使用windows 身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->选择目的->目的(文本文件)-> 文件名(在自己的电脑硬盘中生成一个自定义的文本文件) ->下一步->制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步->选择目的文件格式->源(选择要导出的表)->用默认的带分隔符->选第一行包含有列名称选项->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出到文本文件,选调度DTS包以便以后执行)->保存(可以不选)-> [保存DTS包(保存的时候要输入DTS的包名及详细描述)->下一步->]->完成正在执行包->图形界面显示表到文本文件的步骤和状态->完成如果生成的文本文件大于1M,要用压缩工具压缩后再到Internet上传输。
SQLServer数据库中批量导入数据的四种方法
SQLServer数据库中批量导入数据的四种方法在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题。
其实,在SQL Server中集成了很多成批导入数据的方法。
有些项目实施顾问头疼的问题,在我们数据库管理员眼中,是小菜一碟。
现在的重点就是,如何让用户了解这些方法,让数据导入变得轻松一些。
第一:使用Select Into语句若企业数据库都采用的是SQL Server数据库的话,则可以利用Select Into语句来实现数据的导入。
Select Into语句,他的作用就是把数据从另外一个数据库中查询出来,然后加入到某个用户指定的表中。
在使用这条语句的时候,需要注意几个方面的内容。
一、是需要在目的数据库中先建立相关的表。
如想把进销存系统数据库(SQLServer)中的产品信息表(Product)导入到ERP系统中的产品信息表(M_Product)中。
则前期是在ERP系统的数据库中已经建立了这张产品信息表。
二、是这种方法只复制表中的数据,而不复制表中的索引。
如在进销存系统数据中的产品信息表中,在产品编号、产品种类等字段上建立了索引。
则利用Select Into语句把数据复制到ERP系统的表中的时候,只是复制了数据内容的本身,而不会复制索引等信息。
三、是这条语句使用具有局限性。
一般情况下,这只能够在SQL Server数据库中采用。
不过,对于SQL Server不同版本的数据库,如2008或者2003,还都是兼容的。
若需要导入的对象数据库不是SQL Server的,则需要采用其他的方法。
四、是采用这条语句的话,在目的表中必须不存在数据。
否则的话,目的表中的数据会被清除。
也就是说,这个语句不支持表与表数据的合并。
在SQL Server中,有一条类似的语句,可以实现这个功能。
这条语句就是:Insert Into。
他的作用就是把另外一张表中的数据插入到当前表中。
若用户想要的时表与表数据的合并,则可以采用这条语句。
sqlserver批量导出表数据的方法
sqlserver批量导出表数据的方法SQL Server是一种关系型数据库管理系统,它的功能十分强大,可以支持大型数据的存储和管理。
在实际的应用中,我们经常需要将数据库中的数据导出到其他的格式中进行分析和处理。
本文将介绍SQL Server批量导出表数据的方法,以帮助您更高效地开展工作。
一、使用SQL Server Management Studio(SSMS)导出数据步骤如下:1.打开SSMS,连接到SQL Server数据库实例。
2.选择要导出数据的数据库。
3.在左侧的对象资源管理器中,展开数据库,找到要导出数据的表。
4.右键单击表名,选择“选择前1000行”或“编辑前1000行”。
5.点击“查询”菜单,在下拉菜单中选择“结果文件”和“CSV”。
6.选择要保存文件的路径和文件名,点击“确定”按钮。
二、使用bcp命令导出数据bcp是SQL Server提供的命令行工具之一,用于批量导入和导出数据。
它支持多种文件格式,并具有灵活的命令行参数。
我们可以使用bcp命令导出表数据,步骤如下:1.打开命令提示符或PowerShell。
2.连接到SQL Server数据库实例。
3.输入以下命令:bcp "SELECT * FROM 表名" queryout "文件名" -c -t, -T -S 服务器名其中,“表名”指要导出数据的表名,“文件名”指要保存的文件名,“-c”表示使用字符类型,“-t,”表示数据字段之间使用逗号分隔,“-T”表示使用Windows身份验证连接到SQL Server,“-S”表示要连接的SQL Server实例名或IP地址。
4.按Enter键执行命令,等待导出完成。
三、使用SQL Server Integration Services(SSIS)导出数据SSIS是SQL Server自带的ETL(Extract-Transform-Load)工具,用于数据仓库等场景下的数据整合。
sqlserver2008数据库迁移的两种方法
sqlserver2008数据库迁移的两种⽅法sql server2008数据库迁移的两种⽅法,具体内容如下
⽅案⼀
1、先将源服务器上的数据库⽂件打包(包括mdf和ldf⽂件),并且复制到⽬标服务器上。
2、解压,然后在⽬标服务器上附加数据库
总结:适合数据库巨⼤(50GB以上),需要快速迁移数据,并且移动硬盘空间⾜够⼤。
⽅案⼆:先备份后还原
1、备份
数据库对象右键\任务\备份
注意,如果数据库⽂件较⼤的话,最好选择'压缩备份'
2、还原
将备份⽂件copy到⽬标服务器上,然后还原数据库。
总结:适合数据库中⼩型(否则备份的时间⽐较长),不是很紧急,并且移动硬盘空间有限。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
【IT专家】SQL Server 2008 导出脚本及数据方法
本文由我司收集整编,推荐下载,如有疑问,请与我司联系SQL Server 2008 导出脚本及数据方法2014/12/02 10 方法一:SQL Server2008自带的生成脚本可以生成导出脚本. 选中要导出数据的数据库节点,点鼠标“右键”,在菜单中选择“任务”- “生成脚本”,如图: 650) this.width=650;” src=“itdaan/imgs/7/8/8/8/8/340c43ffa96bc318fe9e45152859a38e.jpe” title=“sql1.jpg” alt=“wKiom1R9EyqTyIATAAVQP_pwySw741.jpg” /> 2.选中所要编辑生成脚本的数据库。
勾选“为所选数据库中的所有对象编写脚本”。
然后点击下一步,如下图 650) this.width=650;” src=“itdaan/imgs/8/9/0/1/46/88f1ed015b016b3007f31632380c1147.jpe” title=“sql2.jpg” alt=“wKioL1R9FNHj7UlwAATFCYqAzUA103.jpg” /> 3.在弹出的界面中,把“编写数据的脚步”置为true,点击“下一步”。
650) this.width=650;” src=“itdaan/imgs/6/0/2/1/82/c262788c070d973204f9543f8bcc461e.jpe” title=“sql3.jpg” alt=“wKioL1R9FXaisSC5AAQQL6ojXyk423.jpg” /> 4.在“输出选项”对话框中,我这里选“将脚本保存到“新建查询“窗口”中。
也可以选中”将脚本保存到文件“。
然后点击完成即可。
650) this.width=650;” src=“itdaan/imgs/9/9/0/5/26/441bf1db6766eef7dfc3f8cd4b46a27f.jpe” title=“sql4.jpg” alt=“wKiom1R9FbSiF8jnAAE41T_6FUE100.jpg” /> 方法二、动软代码生成器生成(20141205今天用动软代码生成器生成导出sql语句和插入的数据) 1.去网上下载个”动软生成器“工具。
sqlserver2008导入导出数据功能
SQL2008导出数据功能
1:选择源数据库点击右键,依次选择“任务”—“导出数据”
2:在弹出的数据库显示源数据库,点击“下一步”按钮
3:在弹出的界面选择目标数据库,点击“下一步”按钮
点击下方的“编辑映射”按钮,选择“删除目标表中的行”和勾选“启用标识插入”
备注:在选择“编写查询以制定要传输的数据”,在弹出的界面编写SQL语句,点击“下一步”按钮,在弹出的界面在目标栏里面需要导入目标数据库的表,在点击下方的“编辑映
射”按钮,选择“删除目标表中的行”和勾选“启用标识插入”
5:点击“下一步”按钮,点击“完成”按钮开始数据导入。
SQL Server数据导入导出
1、在历史数据库数据库(也可以称为源数据库)右键菜单》任务》导出数据:2、在向导中的数据源默认不变(在这里源数据库是ETGPS),由于是在本机进行数据导出,所以选择Windows身份验证,如果是在不同的电脑那必须使用SQL Server身份验证,在服务器名称填写目标数据库地址:3、目标数据库指的是我们想要导入数据的数据库,在这里由于是在本机进行数据导入,所以选择Windows身份验证,在目标数据库通过下拉选择想要导入的数据库(在这里目标数据库是GPS):4、选择数据导入方式,SQL Server中导入方式有两种:复制一个或多个表或视图的数据:指的是从源数据库中导出多个表或视图的所有数据到目标数据库,适用于数据的完整导入,如果数据量过大(如果数据过亿这个方法不适用,导数据时会占用资源,可能导致数据库锁死);编写查询以指定要传输的数据:指的是编写SQL查询语句,将想要的数据导入目标数据库;由于要导的数据库表数据过于庞大,我们选择使用编写SQL语句的方式进行数据导入,我们本次要导的数据库表是vt_location_data,以时间(gpstime)区间为条件进行导入,sql 语句如下:Select * from vt_location_data where gpstime>’2015-03-26 00:00:00’and gpstime<’2015-03-26 10:00:00’在源查询对话框中填写好SQL语句先点击“分析”以防SQL语句出错;5、在“选择源和资源视图”中对我们的源表或视图进行选择,在目标中要选择对应的表或视图,否则会在目标数据库创建与源表或视图相同的表来存储我们导入的数据;在选择好表和视图后点击“编辑映射”将我们源中数据字段与目标中的数据字段一一对应;6、配置完毕后,直接点击“完成”即可开始进行数据传输:7、数据导入完成:8、在数据传输过程中会造成数据库日志增大,如果数据库日志过于庞大会影响性能,所以在数据传输完毕后需要对数据库日志进行清理;(1)打开新建查询,输入命令: DUMP TRANSACTION 数据库名 WITH NO_LOG选择“”(2).再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
sqlserver数据的导入导出命令
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 联机丛书中的 "外围应用配置器"。
SQL Server 2008数据库应用教程第9章 数据库的备份、还原及数据的导入与导出
图9-13 选择数据源
(4)在“选择目标”对话框中指定要将数据 复制到何处。在目标窗口中选择“Microsoft Excel”,Excel文件路径文本框中输入(或浏 览)文件路径及文件名“D:\商品信息及销售 明细.xls”,选择Excel版本,如图9-14所示, 单击“下一步”按钮。
图9-14 选择目标
第9章 数据库的备份、还原及数据的 导入与导出
9.1
数据库的备份
9.2
数据库的还原
9.3
数据的导入与导出
9.1 数据库的备份
9.1.1 备份的方式
1.完整备份 2.差异备份 3.事务日志备份 4.数据库文件和文件组备份
9.1.2 备份设备
1.使用SQL Server Management Studio 创建磁盘备份设备 2.使用SQL Server Management Studio 创建磁带备份设备
(7)“运行包”对话框如图9-17所示运行包
(8)“完成该向导”对话框如图9-18所示, 单击“完成”按钮。
图9-18 完成导入和导出向导
(9)在“执行成功”对话框中,单击“关闭” 按钮,完成数据的导出,如图9-19所示。
图9-19 执行成功
(10)导出数据完成后,打开导出的文件 “D:\商品信息及销售明细.xls”,检查是 否导出成功,如图9-20所示。
图9-3 备份数据库
图9-4 备份数据库“常规”页
图9-5 备份数据库“选项”页
(1)完整备份。 (2)差异备份。 (3)备份事务日志。 (4)文件和文件组备份。
9.2 数据库的还原
9.2.1 使用SQL Server Management Studio 还原数据库
(1)启动SQL Server Management Studio,在 “对象资源管理器”窗口中展开实例节点→数 据库,选择用户数据库ProductsSALES。
SQLServer数据库中批量导入数据的四种方法
SQLServer数据库中批量导入数据的四种方法在SQL Server中,有多种方法可以进行批量导入数据。
下面将介绍四种常用的方法。
1. 使用BULK INSERT命令: BULK INSERT命令是SQL Server中用于批量导入数据的命令。
它可以从文本文件、CSV文件或其他数据源中导入数据到表中。
使用BULK INSERT命令导入数据的步骤如下:a.创建目标表:首先,在数据库中创建一个与源文件相匹配的目标表,包含与源文件中的列相对应的列。
b. 创建格式文件:如果数据源文件的格式与目标表的结构不完全匹配,可以使用bcp工具创建一个格式文件,定义数据源文件中列的排列和属性。
c.使用BULKINSERT命令导入数据:使用BULKINSERT命令指定目标表和格式文件,将数据导入到目标表中。
2. 使用OPENROWSET命令: OPENROWSET 是SQL Server的一个内置函数,用于在查询中将远程数据源中的数据作为表进行查询。
可以使用OPENROWSET将数据源文件中的数据作为表导入到目标表中。
使用OPENROWSET命令导入数据的步骤如下:a.创建目标表:首先创建一个目标表,包含与要导入数据的文件相匹配的列。
b.使用OPENROWSET命令导入数据:使用OPENROWSET命令指定目标表和源文件的路径,将数据导入到目标表中。
3.使用BULKINSERT命令与格式文件:BULKINSERT命令可以与格式文件一起使用,将数据以批量的方式导入到表中。
格式文件定义了数据源文件中数据的排列和属性,可用于导入不完全匹配目标表结构的数据。
使用BULKINSERT命令与格式文件导入数据的步骤如下:a.创建目标表:首先,在数据库中创建与源文件相匹配的目标表,包含与源文件中的列相对应的列。
b. 为源文件创建格式文件:使用bcp工具为源文件创建一个格式文件,定义数据源文件中列的排列和属性。
c.使用BULKINSERT命令导入数据:使用BULKINSERT命令指定目标表和格式文件,将数据导入到目标表中。
Sqlserver2008R2数据迁移到sqlserver2008
Sql server 2008 R2数据这个方法关键是如何确保保留原有表结构的主键、外键等分两个情况,对于数据库数据量小的,可以很方便的解决。
第一种:小数据的情况1.先在低版本的服务器上建立同名的数据库。
2.在高版本的服务器上右键点击目标数据库->任务->生成脚本3.在选择对象->选择特定数据库对象4.选择表、视图、存储过程,然后下一步5.关键在这,这一步里,请选择”高级“,选项里选择[编写DROP和Create脚本]项的”编写DROP和Create脚本“选择服务器数据库版本选择[编写脚本和数据类型]项的“架构和数据"6.保存脚本7.在低版本的数据库下执行脚本即可。
第二种:大数据的情况按理应该也可以通过类似包含架构和数据的方式来做,但是由于包含大数据的时候脚本文件太大,无法在分析器里执行,所以我们得绕一下。
1~4步和a情况相同5.这步我们选择”高级“,选项里选择[编写DROP和Create脚本]项的”编写DROP和Create脚本“,以及[为服务器版本编写脚本]项的sql server 2008(具体看数据库的版本),最后选[编写脚本和数据类型]项的“架构"6.保存脚本7.在低版本的数据下执行脚本,注意(ALTER TABLE 表名WITH CHECKADD CONSTRAINT [外键名] FOREIGN KEY(字段) REFERENCES 表名(字段))这个先不要执行。
8.现在可以通过导入导出任务先将表的内容导入到低版本的数据库内9.再执行脚本内(ALTER TABLE 表名WITH CHECK ADD CONSTRAINT [外键名] FOREIGN KEY(字段) REFERENCES 表名(字段))这样的语句,此处将表的外键附加上。
sqlserver批量导出表数据的方法
SQL Server批量导出表数据的方法在SQL Server数据库中,有时我们需要将表数据导出为不同的文件格式,如CSV、Excel等。
本文将介绍几种常用的方法,来实现SQL Server批量导出表数据的功能。
1. 使用BCP命令导出数据BCP(Bulk Copy Program)是SQL Server自带的一个命令行工具,可以用来导入导出数据。
下面是使用BCP命令导出表数据的步骤:1.打开命令提示符或Powershell窗口,输入以下命令:bcp [数据库名称].[表名] out [文件路径] -c -T -S [服务器名称]其中,数据库名称是指要导出数据所在的数据库名,表名是指要导出数据的表名,文件路径是指要导出数据的文件路径,服务器名称是指SQL Server实例的名称。
例如,要将数据库AdventureWorks中的表Sales.SalesOrderDetail的数据导出为CSV文件,可以使用以下命令:bcp AdventureWorks.Sales.SalesOrderDetail out "C:\ExportData.csv" -c -T-S localhost2.执行上述命令后,BCP会将表数据导出为指定的文件。
使用BCP命令导出数据的优点是速度快、可批量导出多个表数据,但缺点是需要使用命令行操作,不够直观。
2. 使用SQL Server Management Studio导出数据SQL Server Management Studio(简称SSMS)是SQL Server的可视化管理工具,可以通过图形化界面导出表数据。
以下是使用SSMS导出表数据的步骤:1.打开SSMS,连接到SQL Server实例,展开数据库和表节点,右键点击要导出数据的表,选择“导出数据”选项。
2.在导出数据向导中,选择数据源和目标:–数据源:选择要导出数据的表。
–目标:选择要导出数据的文件格式(如CSV、Excel等)和文件路径。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sql server 2008 导入导出数据大全/******* 导出到excelEXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q - S"GNETDATA/GNETDATA" -U"sa" -P""'/*********** 导入ExcelSELECT *FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\test.xls";User ID=Admin;Password=;Extendedproperties=Excel5.0')...xactions/*动态文件名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=;Extendedproperties=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=;Extendedproperties=Excel5.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=;Extendedproperties=Excel5.0')...xactions/** 导入文本文件EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c-Sservername -Usa -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;Password=;')...产品********************* 导入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 satisfied</Order></Customer><Customer cid="C2" name="Ursula" city="Oelde" ><Order oid="O3" date="7/14/1999" amount="100" note="Wrap it blue white 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 @idoc/**********************Excel导到Txt****************************************/想用select * into opendatasource(...) from opendatasource(...)实现将一个Excel文件内容导入到一个文本文件假设Excel中有两列,第一列为姓名,第二列为很行帐号(16位)且银行帐号导出到文本文件后分两部分,前8位和后8位分开。