怎样将一个数据库的多个文件合并到两个数据库文件
怎样将一个数据库的多个文件合并到两个数据库文件
如果一个数据库有多个文件,如
database.mdf
database_log.ldf
database2.mdf
database2_log.ldf
这几个数据库文件属于一个数据库的文件来的,怎么将四个数据库文件怎样合并到成两个数据库文件呢(一个为数据文件,一个为日志文件)?
备份再还原还是这些文件。
------解决方案--------------------新建数据库,用DTS将原数据库的所有对象导入到新数据库中。
------解决方案--------------------1、清除日志
backup log db_name with no_log
2、在企业管理器压缩文件,好像有选择请空一个文件的
3、确认清空的文件可以在企业管理器数据库属性里删除
------解决方案--------------------USE [你的库名]
GO
-- 1. 查出的数据文件对应的逻辑文件名(name 列是逻辑名, filename 是物理文件名)
SELECT
name, filename
FROM sysfiles
GO
-- 2. 将要删除的数据文件和日志文件中的数据转移到其他文件并
DBCC SHRINKFILE (N 'data2 ' , EMPTYFILE) -- data2 是你要删除的数据文件的逻辑名(name列)
DBCC SHRINKFILE (N 'log2 ' , EMPTYFILE) -- log2 是你要删除的日志文件的逻辑名(name列)
GO
-- 3. 删除文件
ALTER DATABASE [你的库名]
REMOVE FILE log2 -- log2 是你要删除的日志文件的逻辑名(name列)
ALTER DATABASE [你的库名]
REMOVE FILE data2 -- data2 是你要删除的数据文件的逻辑名(name列)
------解决方案---------------------- 4. 如果有需要, 删除文件组
-- 当你被删除的数据文件放在某个文件组, 而且这个文件组仅包含这个数据文件时, 在删除数据文件后, 应该考虑删除文件组
-- 这个查询可以查出文件组及包含的文件, 以协助你确定是否要进行删除文件组的操作
SELECT
groupname = CASE WHEN F.groupid = 0 THEN N 'LOG ' ELSE G.groupname END,
F.name, F.filename
FROM sysfilegroups G
FULL JOIN sysfiles F
ON G.groupid = F.groupid
ORDER BY groupname
-- 删除文件组使用类似这样的语句
ALTER DATABASE [你的库名]
REMOVE FILEGROUP 文件组名称
------解决方案--------------------try:
http://topic.csdn.net/t/20041129/17/3599057.html
------解决方案--------------------有个条件:
清空文件必须保证同一个文件组有其他文件,也就是说你的两个数据文件是一个文件组的,两个log文件也是一样
------解决方案--------------------看鑽石~~~~
------解决方案--------------------邹老大好像最近很忙啊!
------解决方案--------------------老大露面了!!听老大的