把MDF文件导入SQLServer数据库
- 格式:doc
- 大小:278.50 KB
- 文档页数:2
当我们建⽴⼀个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进⾏数据检验、净化和转换时,将会⾯临很⼤的挑战。
幸好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。
sqlserver连接数据库的方法
SQLServer连接数据库的方法有多种,具体如下:
1. 使用SQL Server Management Studio连接数据库:打开SQL Server Management Studio,输入服务器名称和身份验证信息(Windows身份验证或SQL Server身份验证),然后选择要连接的数据库。
2. 使用SQL Server数据连接向导连接数据库:打开Visual Studio等开发工具,选择SQL Server数据连接向导,输入服务器名称和身份验证信息,选择要连接的数据库,完成连接。
3. 使用ODBC连接数据库:在控制面板中打开ODBC数据源管理器,创建一个新数据源,选择SQL Server驱动程序,输入服务器名称和身份验证信息,选择要连接的数据库,完成连接。
4. 使用连接数据库:在Visual Studio等开发工具中,使用SqlConnection对象连接数据库,设置连接字符串包括服务器名称、身份验证信息和要连接的数据库名。
5. 使用Entity Framework连接数据库:在Visual Studio等开发工具中,使用Entity Framework连接数据库,设置连接字符串包括服务器名称、身份验证信息和要连接的数据库名,使用DbContext 对象操作数据库。
以上是SQL Server连接数据库的常见方法,可以根据实际情况选择合适的方法进行连接。
- 1 -。
SQLServer日志过大处理
注意:需要在应用停服状态下进行操作,并做好数据库备份1.查看数据库属性,找到数据库文件路径
常见路径为SQLServer默认DATA目录
可以在对应路径看到这个数据库的MDF和LDF文件
2.右键选择需要处理的数据,选择分离,分离之后数据库会从管理界面消失,分离时需要
勾选如下选项
3.剪切过大的LDF文件至其他目录,或者直接删除
4.数据库位置右键,选择附加mdf文件,删除找不到的日志文件,附加之后,日志会重新
生成
附加完成之后,数据库会出现在管理界面
5.至此完成过大日志处理,新增日志较小。
可以启动服务继续使用。
SQL Server数据库的MDF文件修复和恢复方法实际上,我们经常会遇到数据库恢复或修复的问题,下面我们来讲讲方法:首先:如果备份的数据库有两个文件,分别是.LDF 和.MDF,打开企业管理器,在实例上右击---所有任务--附加数据库,然后选择那个.MDF文件,就可以了。
或者在查询分析器中输入:sp_attach_db "数据库名称","路径\文件名.ldf","路径\文件名.MDF"SQL Server数据库备份有两种方式,一种是使用BACKUP DA TABASE将数据库文件备份出去,另外一种就是直接拷贝数据库文件mdf和日志文件ldf的方式。
下面将主要讨论一下后者的备份与恢复。
本文假定您能熟练使用SQL Server Enterprise Manager(SQL Server企业管理器)和SQL Server Quwey Analyser(SQL Server查询分析器)。
1.正常的备份、恢复方式0正常方式下,我们要备份一个数据库,首先要先将该数据库从运行的数据服务器中断开,或者停掉整个数据库服务器,然后复制文件。
卸下数据库的命令:Sp_detach_db 数据库名连接数据库的命令:Sp_attach_db或者sp_attach_single_file_dbs_attach_db [@dbname =] 'dbname', [@filename1 =] 'filename_n' [,...16]sp_attach_single_file_db [@dbname =] 'dbname', [@physname =] 'physical_name'使用此方法可以正确恢复SQL Sever7.0和SQL Server 2000的数据库文件,要点是备份的时候一定要将mdf和ldf两个文件都备份下来,mdf文件是数据库数据文件,ldf是数据库日志文件。
问题:数据库达到160G,怎样处理?
原因:
1、S QLSERVER数据库,分为日志文件.ldf和主要文件.mdf,主要文件就是我们
的原始数据库,日志文件主要用于灾难恢复,记录了对数据库的所有操作的日志。
2、数据库大的原因为日志文件ykchr.log很大,主要文件才3G多,日志文件增
长策略为不限制增长,导致日志只追加不会覆盖,所以才会很大。
解决办法:
将日志文件中的日志全部清空,修改日志文件的增长策略,目前调整为到最大10G,超过10G自动从头覆盖。
也可以将日志文件大小最大限制为5G
步骤:
1、查看数据库中,确认哪个文件占用空间较大。
2、选择目标数据库,分离数据库,为了可以删除日志文件。
3、现在可以修改日志文件名。
3、重新附加数据库,找到mdf文件即可。
5、删除找不到的日志文件目录。
6、直接恢复数据库即可。
7、刷新,显示出加附加的数据库。
8、找到目标数据库,打开属性,限制日志文件最大容量5G。
SqlServer数据库附加问题:不是主数据库⽂件⼀、前⾔今天公司要切换数据库服务器,数据库⽂件⼤于2G,结果再附加到另⼀服务器的数据库⾥⾯,就产⽣了⼀个问题。
如下:标题:Microsoft SQL Server Management Studio------------------------------⽆法为此请求检索数据。
(Microsoft.SqlServer.SmoEnum)------------------------------其他信息:执⾏ Transact-SQL 语句或批处理时发⽣了异常。
(Microsoft.SqlServer.ConnectionInfo)------------------------------E:\DATA\数据库名.mdf 不是主数据库⽂件。
(Microsoft SQL Server,错误:5171)⼆、解决⽅案在⽹上找了很多⽅法,最后在CSDN上找到了相关的解决⽅式,经测试可⽤。
use mastergosp_detach_db '数据库名' -- 分离数据库gosp_attach_db '数据库名','E:\数据库名.mdf','E:\数据库名.ldf' -- 附加数据库⽂件go⽹上看到的整理了⼀下。
在SQL Server 7.0中,微软推出了sp_attach_db和sp_attach_single_file_db系统存储过程。
它对于SQL Server数据库管理员执⾏下⾯的任务是⾮常⽅便的:sp_attach_db:直接将.MDF和.LDF⽂件附加到服务器。
sp_attach_single_file_db:只附加.MDF⽂件。
sp_detach_db:将数据库从⼀个服务器分离。
复制.MDF⽂件到另⼀个服务器上,然后使⽤sp_attach_db系统存储过程重新附加这些⽂件到两个服务器上。
oracle到sqlserver的数据迁移方案理论说明1. 引言1.1 概述本文将详细介绍将Oracle数据库迁移到SQL Server数据库的方案,包括理论说明及具体操作步骤。
Oracle和SQL Server是目前企业常用的两种关系型数据库管理系统(DBMS),它们在应用场景、功能特性以及数据存储方式等方面存在一些差异。
因此,在进行数据库迁移时,需要仔细分析比较两种数据库系统,选择适合的迁移方案,并进行必要的数据准备工作。
1.2 文章结构本文共分为下述部分:引言部分提供对整篇文章内容的总览和概述;在数据迁移方案说明中,我们将就Oracle和SQL Server这两种数据库进行比较,并探讨选择适当迁移方案所需考虑的因素;接着,我们将详解实际的迁移过程,包括导出Oracle数据库数据、创建SQL Server数据库结构以及导入数据到SQL Server数据库;最后,在迁移后验证与优化部分,我们将讨论如何验证迁移后数据的一致性,并提供一些建议来优化SQL Server数据库的性能;最后得出结论。
1.3 目的本文旨在帮助读者了解Oracle到SQL Server的数据迁移过程,并提供相关理论和指导。
通过阅读本文,读者将能深入了解两种数据库系统的区别,掌握数据迁移的基本原理和方法,并具备迁移后验证与优化的能力。
无论是计划将现有Oracle数据库迁移到SQL Server,还是为新项目选择合适的数据库系统,本文都能提供有用的参考和指导。
2. 数据迁移方案说明:2.1 Oracle和SQL Server的比较:Oracle和SQL Server是两个广泛使用的关系型数据库管理系统。
虽然它们都有类似的功能,但在某些方面存在一些差异。
- 性能和可扩展性:Oracle被认为在大型企业级应用和高负载环境中具有更好的性能表现,而SQL Server则更适用于中小型企业或低负载环境。
- 成本:一般来说,使用Oracle可能需要更高的成本,包括购买许可证、维护费用等。
假设已存在这样的一个数据库,数据库文件名称是:SchoolIT_Data.MDF,日志文件名称是:SchoolIT_Log.LDF;其存盘的位置如下图!下面我们介绍将其附加到Sql Server中!首先打开你的Sql Server企业管理器,在左边的列表中执行类似下图的操作:“数据库”→“所有任务”→“附加数据库”;弹出如下图的对话框:上图中,我们点击“...”按钮,上图中已使用红色线条圈好的按钮,之后会弹出选择MDF文件对话框,根据第一图中的路径,找到存盘位置,之后选择这个文件:SchoolIT_Data.MDF,最后一路按“确定”按钮一直退出操作即可完成!数据库的安装:打开SQL企业管理器,依次点击Microsoft SQL Server,SQL Server组,(LOCAL)(Windows NT)。
右键点击“数据库”,选择“所有任务”中的“附加数据库”选项,会看见如下画面。
点击“附加数据库(A)”会跳出“附加数据库—(LOCAL)”窗口如下:点击“验证(V)”按钮左边的一按钮,会跳出如下“浏览现有的文件—(L OCAL)”提示窗口如下:选择源文件所在的虚拟目录,打开book文件夹中的database文件夹,选择Book_Data.MDF文件(这里以Book_Data.MDF文件为例子),点击“确定”。
点击“确定”后,跳出如下提示窗口,再次点击“确定”,会跳出“附加数据库顺利完成”窗口,点击确定,数据添加完成,如图:重装操作系统之后,原来的SQL Server2000在磁盘上的文件还存在(不是在C盘上),但是系统中找不到SQL Server2000此时只要重新安装SQL Server2000,再附加数据库即可。
具体操作如下:1.重新安装SQL Server20002.进入企业管理器,右击数据库-所有任务-附加数据库-选择与要恢复的数据库对应的.mdf 文件(在原来的数据库的data文件加中),确定即可如果点击安装SQL Server2000时没有反应,再次点击时,提示'一个实例正在运行',则可进入注册标编辑器,右击删除SQL Server2000,具体操作:1.开始-运行-regedit-打开了注册表编辑器2.HKEY-LOCAL-MACHINE-SOFTWARE-Microsoft-右击删除Microsoft SQL Server重启计算机,重新安装SQL Server即可。
在SQLServer数据库中批量导⼊数据的四种⽅法在SQL Server数据库中批量导⼊数据的四种⽅法,在软件项⽬实施的时候,数据导⼊⼀直是项⽬⼈员⽐较头疼的问题。
其实,在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。
他的作⽤就是把另外⼀张表中的数据插⼊到当前表中。