DBA | 如何将 .mdf 与 .ldf 的数据库文件导入到SQL Server 数据库中?

2024-10-09 21:26:41 浏览数 (5)

如何将 (.mdf) 和 (.ldf) 的SQL Server 数据库文件导入到当前数据库中?

Step 1.登录到 Sql Server 服务器中,打开 SQL Server Management Studio,查看当前数据库版本信息。

代码语言:javascript复制
> select @@version;
  -- Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)   Apr  2 2010 15:48:46   
  -- Copyright (c) Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor) 

Step 2.右键点击“数据库”,选择“附加”。

weiyigeek.top-点击附加数据库图

Step 3.选择要附加的数据库文件上传到SQL Server服务器,例如,此处 SQL Server Database Primary Data File (.mdf) 格式的czbm.mdf文件,请根据实际情况进行设置附加数据库相关参数,注意不能与当前数据库中的数据库名称同名,最后点击“确定”按钮。

weiyigeek.top-添加设置附加数据库图

或者采用SQL语句导入数据库文件,选中某个数据库文件,右键点击【新建查询】,再代码界面输入如下代码,点击F5键或者点击运行按钮即可。

代码语言:javascript复制
USE master;

GO
EXEC  sp_attach_db  @dbname  =  '你的数据库名',     
@filename1  =  'mdf文件路径(包缀名)',     
@filename2  =  'Ldf文件路径(包缀名)'

GO

weiyigeek.top-采用SQL语句导入数据库文件图

或者将mdf文件和ldf文件拷贝到数据库安装目录的DATA文件夹下,执行下述SQL,再刷新数据库文件即可。

代码语言:javascript复制
USE master;
GO
CREATE DATABASE NewFile
    ON (FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLDATASQL2008.mdf'),
    (FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLDATASQL2008_log.ldf')
    FOR ATTACH;
GO

weiyigeek.top-将mdf文件和ldf文件拷贝DATA文件夹下图

Step 4.导入后查询库中导入全部表的行数。

代码语言:javascript复制
SELECT 
    t.name AS TableName,
    p.rows AS RowCounts
FROM 
    sys.tables AS t
INNER JOIN 
    sys.partitions AS p ON t.object_id = p.object_id
WHERE 
    p.index_id IN (0, 1)  -- 0: Heap, 1: Clustered
GROUP BY 
    t.name, p.rows
ORDER BY 
    p.rows desc ;

weiyigeek.top-查询库中导入所有表的行数图

Step 65特别注意,删除附加的数据库前,请自行备份数据库文件,在删除数据库后,默认会将原附加mdf、ldf数据库文件删除,如果需要保留,请在删除数据库前取消勾选【删除数据库备份和欢迎历史记录信息】。

温馨提示:特别版本不兼容问题,低版本不能导入高版本SQL的mdfldf文件。

0 人点赞