sql server 2008如何导入mdf,ldf文件
- 格式:doc
- 大小:155.50 KB
- 文档页数:7
SQL Server数据导入导出操作指南数据导入导出目的:当我们要把数据库中的某个表导到另一个数据库中或者导到磁盘上时,我们就要进行数据导入导出的操作。
(由于导出操作本质上是导入的逆过程,所以本文档将以导出操作进行重点讲解)(一)数据的导出在进行数据导出前,请先确保Sql server服务器端 Sql Server agent服务是否开启(包括源和目的),只有服务器端的Sql Server agent服务开启才能进行如下述的数据导出工作。
第一步:打开Sql企业管理器,选择你所要导出的数据库,并且点鼠标右键,选择“所有任务”里的“导出数据”选项,第二步: 选择“下一步”第三步:选择你所要导出的数据源的格式,数据源的服务器的名称,数据库登陆的验证模式,和将要进行数据导出的数据库。
(1)如果你要把一个表数据导出到文本文件时,你要在数据源中选择“文本文件”,(2)如果是要把一个数据库中的表导到另一个数据表中,你要在数据源中选择“用于SQL SERVER 的MICROSOFT OLE DB 提供程序”第四步:选择“下一步”,同样地,选择你所要导入的目的地格式,(1)如果你要导成文本格式时,你要在“目的”中选择文本文件,之后会出现如下窗口……并且选择你要把此文本导到的路径位置,选择“下一步”再选择“下一步”继续“下一步”这样就完成了把数据表导成文本文件的操作.(2)如果你想将表导到另一个数据库中时,你要在目的中选择“用于SQL SERVER的MICROSOFT OLE DB提供程序”,同时指定目的地的服务器的名称,目的地的数据库登陆的验证模式,和将要导入数据的数据库名。
第五步:选择“下一步”,然后指定是从数据源复制一个或多个表/视图,还是复制查询结果.(有三个选项,本文档以第一个为例进行讲解)第六步:选择“下一步”然后在要进行导出的表前打上钩(源),同时也选择你要把此表导到目的地的方式,(1)当你在目的中选择的表名在目的数据库中不存在时,选择下一步,出现如下窗口……………………..选择“下一步”再选择“完成”这样就把一个源中的表导到目的数据库中.(2)当你在目的中选择的表名在目的数据库中已经存在时,点击转换控键,出现如下窗口出现三个选项.选择第一个选项(创建目的表),表示会在目的数据库中重新建一个源数据表,并把已经存在的表删除.选择第二个选项(删除目的表中的行),表示会把已经存在的表中的内容删除(表的视图和索引不变),并从源数据表的内容重新导到此表中。
SQl server 2008 附加数据库失败如何解决
通过附加功能添加现成的数据库是非常方便的,然而有时会出现附加数据库失败。
那么,我们该如何解决此问题?
方法一、
1.
找到要添加数据库的.mdf文件,点击右键,选择属性。
2.
在属性页面点击安全,选择Authenticated Users,单击编辑
3. 3
Authenticated Users权限中选择完全控制,点击确定,点击属性界面的确定。
4.
同理,右键点击数据库的.ldf文件,打开属性。
按以上步骤再次设置即可。
5.
完成以上步骤,再进行附加数据库,这时就可以。
END
方法二、
1.打开数据库实例的安装目录,打开DATA文件夹。
(如我的实例目录地
址为:D:\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA 也可能当时安装时装在C盘了)
2.将要附加的数据库.mdf文件和.ldf文件,剪切或复制到DATA
文件夹里。
3.完成以上步骤,再次附加数据库。
这时就可以了。
mdf和ldf是什么文件/tittle-tattle/2009/MDF-LDF-MSSQL.htm l在MS SQL Server7/2000中摒弃了以前版本中的设备对象,一个数据库文件包含两个文件:.mdf和.ldf。
在系统瘫痪之前把这两个文件从SQL Server的安装目录的data子目录里拷贝出来(一般为D:\MSSQL\DATA),重新安装完成系统之后,再将这两个文件拷贝到SQL Server安装目录的data子目录里面,然后进行如下操作就可以恢复你的数据库了。
恢复时有两种方式可供选择:1、调用系统存储过程SP_A TTACH_DB举一个例子,需要备份和恢复一个名为student的数据库。
先打开SQL Server Service Manager,关掉SQL Server服务,把需要备份的student数据库复制到其他的地方(可以是自己硬盘的其它盘,也可通过局域网复制到他人的PC上),包含有两个文件student.mdf和student.ldf。
某些时间以后,系统数据库瘫痪,需要进行恢复。
先重新安装系统,把student.mdf 和student.ldf这两个文件拷贝到SQL Server安装目录的data子目录里面,再在MS Query Analyzer中运行如下命令:exec sp_attach_db @dbname=N''student'',@filename1=N''d:\MSSQL\Data\student_Data.mdf'',@filename2=N''d:\MSSQL\Data\student_Log.ldf''第一行命令表示要恢复的数据库名称,可以是原来的名称student,也可以另外起一名称,但一定要保证唯一。
第二、三行命令表示数据库文件的物理名称,也就是说你拷贝过来的数据库文件student.mdf和student.ldf的实际位置。
Sql2008数据库表结构导出导入
昨天做了件很悲催的事情,用了drop table语句,将OA系统中的WorkPlan表删除,当然,数据是全部丢了,现在最主要的事情是赶紧恢复表,刚刚开始时手动建表,建好后前台输入数据还是无法存储,分析原因是由于表结构变化导致的,由于此表关联了好几张表,因此,只要表结构发生变化,数据将无法存储。
因此,只有找以前的数据库备份,将备份的表结构导出,再倒入到OA数据库即可,具体操作如下:
1.将备份数据库倒入sql Server2008数据库,即ecology71
2.找到备份数据库的WorkPlan表
3.右键:【编写表脚本为】-【CREATE到】-【新查询编辑器的窗口】
4.将创建的脚本全部复制
5.打开已删除WorkPlan表的数据库ecology70,选中【表】
6.点【新建查询语句】
7.将刚刚复制的脚本粘贴到打开的【新建查询语句工作区】
8.注意:将数据库名称改为ecology70,此处的名称为复制时的数据库名称
9.改名后刷新数据库,即可。
另外,刚刚导入的ecology71参考数据库也已删除。
一、导出导入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上传输。
SQL SERVER 只有.MDF文件如何附加
1、新建一个同名数据库,停止sql服务,删除新建数据库.ldf文件
2、将要附加的数据库的.mdf文件覆盖刚新建的.mdf文件,并重启服务
这时数据库DATA目录下只有一个.mdf文件,启动sql server Management studio --新建查询
use master
go
alter database db_name set emergency
go
--置数据库为单用户模式
alter database db_name set single_user with rollback immediate
go
--重建数据库日志文件
alter database db_name Rebuild Log on (name=log_name,filename='C:\log_name.ldf') go
--最后设置数据库为多用户模式。
alter database dbname set multi_user
通过以上方法修复数据库后,可以dbcc checkdb一下数据库,如果发现页级错误,可以通过以下命令修复。
这两个命令要在单用户的情况下使用
Use master
go
sp_dboption 数据库名, single, true
dbcc checkdb(dbname,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(dbname,REPAIR_REBUILD)
--最后再设置数据库为多用户模式。
sqlserver2008如何导⼊mdf,ldf⽂件sql server 2008怎样导⼊mdf,ldf⽂件⽹上找了⾮常多解决sql server导⼊其它电脑拷过来的mdf⽂件,多数是不全。
遇到的解决⽅法不⼀样等问题,下边是找到的解决这个问题的最全⾯⽅法!将mdf。
ldf⽂件导⼊到sql server 2008其中,以下提供两种办法:第⼀种:(1)选择右击数据库(2)然后点击“附加”。
出现以下的界⾯。
然后选择加⼊。
加⼊上你要加⼊的mdf⽂件就可以。
另外⼀种⽅法是:新建查询,然后输⼊下列语句,EXEC sp_attach_db @dbname = 'yourdatabasename',@filename1 = 'x:\路径\MSSQL\Data\pubs.mdf',@filename2 = 'x:\路径\MSSQL\Data.Ldf另外⼀种⽅法可能提⽰SQL语⾔附近有问题(真不知道什么问题啊??)上边两种都可能可能会出现这样的错误:(假设上述两种过程成功了,那祝贺了!)Sqlserver2008附加数据库时出错提⽰操作错误5(拒绝訪问)错误5120的解决的⽅法Sql Server2008附加数据库⽂件时弹出错误信息:例如以下图:可能⼤家都遇到过这样的问题,解决⽅式例如以下:⽅案⼀:切换登录⽅式出现这样的情况是因为⽤“混合验证⽅式”(SQL Server⾝份验证)登录数据库造成的,仅仅要将登录⽅式改为 “⾝份验证⽅式”登录就可以解决该问题。
附加成功后再换⽤“混合验证模式”登陆就没问题了。
⽅案⼆:改动服务选择全部程序-SQL Server 2005-配置⼯具-选择"SQL Server Configuration Manager"或者“SQL Server 配置管理器”。
打开“SQL Server Configuration Manager”配置界⾯。
四种方法在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。
他的作用就是把另外一张表中的数据插入到当前表中。
若用户想要的时表与表数据的合并,则可以采用这条语句。
sql——SQLServer利⽤mdf、ldf⽂件复制数据库
1.选中要迁移的数据库,右击选择‘属性’,在打开的页⾯中点击‘⽂件’,可以查看到当前数据库⽂件的存放⽬录
2.现在我在数据库实例中有数据库Test1,数据⽂件位于D:\SQLEXPRADV_x64_CHS\setup\MSSQL12.SQLEXPRESS\MSSQL\DATA⽬录下, 我们需要将数据⽂件移动到D:\tmp\data⽬录下
复制过程中报错:操作⽆法完成,因为⽂件已在SQL Server(MSSQLSERVER)中打开。
解决⽅案:打开SQL Server 配置管理器,把SQL Server服务⾥⾯运⾏的服务关掉就能移动了(右键——》点击停⽌)
3.选择右击数据库,然后点击“附加”。
出现以下的界⾯,然后选择加⼊,加⼊上你要加⼊的mdf⽂件就可以。
附加数据库时出错:附加数据库对于服务器****失败。
其他信息:执⾏Transact-SQL语句或批处理时发⽣了异常。
⽆法打开屋⾥⽂件"..\..数据库路径"。
操作系统错误5:"5(拒绝访问。
)"。
(microsoft SQL Server,错误5120)
解决⽅案:需要附加的数据库所在的⽂件夹权限不够。
7.2.8 SQL Server数据库的备份和恢复大到自然灾害,小到病毒感染、电源故障乃至操作员操作失误等,都会影响数据库系统的正常运行和数据库的破坏,甚至造成系统完全瘫痪。
数据库备份和恢复对于保证系统的可靠性具有重要的作用。
经常性的备份可以有效的防止数据丢失,能够把数据库从错误的状态恢复到正确的状态。
如果用户采取适当的备份策略,就能够以最短的时间使数据库恢复到数据损失量最少的状态。
SQL Server提供了“分离/附加”数据库、“备份/还原”数据库、复制数据库等多种数据库的备份和恢复方法。
这里介绍一种学习中常用的“分离/附加”方法,类似于大家熟悉的“文件拷贝”方法,即把数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘上作备份,然后把这两个文件再拷贝到任何需要这个数据库的系统之中。
比如,在实验教学过程中,同学们常常想把自己在学校实验室计算机中创建的数据库搬迁到自己的计算机中而不想重新创建该数据库,就可以使用这种简单的方法。
但由于数据库管理系统的特殊性,需要利用SQL Server提供的工具才能完成以上工作,而简单的文件拷贝导致数据库根本无法正常使用。
这个方法涉及到SQL Server分离数据库和附加数据库这两个互逆操作工具。
1、分离数据库就是将某个数据库(如student_Mis)从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。
分离成功后,我们就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中作为备份保存。
2、附加数据库就是将一个备份磁盘中的数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到需要的计算机,并将其添加到某个SQL Server数据库服务器中,由该服务器来管理和使用这个数据库。
下面分别介绍这两个步骤的操作细节。
1、分离数据库分离数据库的操作由以下6步构成。
sql server 2008如何导入mdf,ldf文件sql server 2008如何导入mdf,ldf文件
如何将mdf,ldf文件导入到sql server 2008数据库当中,下面提供两种办法:
第一种是右击数据库,然后点击附加。
出现下面的界面。
然后选择添加,添加上你要添加的mdf文件即可。
第二种方法是:新建查询,然后输入下列语句,EXEC sp_attach_db @dbname = 'yourdatabasename',
@filename1 = 'x:\路径
\MSSQL\Data\pubs.mdf',
@filename2 = 'x:\路径
\MSSQL\Data.Ldf
但是可能会出现这种错误:
Sqlserver2008附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
Sql Server2008附加数据库文件时弹出错误信息:如下图:
,一时无解,遂求助于百度谷歌,经过各种试验,特将解决办法整理于此,希望能帮到大家,同时如果有好的意见大家多多交流啊!
方案一:切换登录方式
出现这种情况是由于用“混合验证方式”(SQL Server身份验证)登录数据库造成的,只要将登录方式改为“windows身份验证方式”
登录即可解决该问题,附加成功后再换用“混合验证模式”登陆就没问题了。
此方法经本人测试成功。
方案二:修改服务
选择所有程序-SQL Server 2005-配置工具-选择"SQL Server Configuration Manager"或者“SQL Server 配置管理器”,
打开“SQL Server Configuration Manager”配置界面,在左侧选择"SQL Server 2005 服务",在右侧右击打开“SQL Server
(SQLEXPRESS)” 的属性,在内置账户处将网络服务--”Network Service”改为本地系统
--"Local System",
点击“重新启动”后再附加数据库就OK了。
此方法经本人测试成功。
附加数据库成功后如果担心改变设置后影响以后使用可以将内置账户处的“Local System”再改回
“Network Service”,数据库仍可打开。
主要配置过程如下图:
1.打开“SQL Server Configuration Manager”配置界面:
2.选择Sql Server(MSSQLSERVER),选项,并右击:
3.选择“Local System”:
4.选择“重新启动”:
5.配置成功:
这样配置后附加数据库就不会出错了。
出现的问题:
附加数据库后发现数据库属性为只读的解决办法
附加后发现数据库属性为“只读”解决方法为:打开“Sql Server2005”,在只读的数据库上右击选择属性,选中属性窗口左侧"选择页"下面的"选项",在窗口右边将“数据库为只读”项
改为“False”,点击确定即可。
原因:之所以附加上的数据库为“只读”,是因为启动SQL Server 的默认的启动账号“网络服务”对所附加(Attach)的数据库文件的
权限不够造成的
主要配置过程如图:
步骤一:
步骤二:。