如何修改SQL 2008的数据文件目录

如何修改SQL 2008的数据文件目录,第1张

use

master;

go

alter

database

master

modify

file

(name

=

master,filename='J:\data\mastermdf');

go

alter

database

master

modify

file

(name

=

mastlog,filename='J:\data\mastlogldf');

go

alter

database

tempdb

modify

file

(name

=

tempdev,filename='J:\data\tempdbmdf');

go

alter

database

tempdb

modify

file

(name

=

templog,filename='J:\data\templogldf');

go

alter

database

msdb

modify

file

(name

=

msdbData,filename='J:\data\MSDBDatamdf');

go

alter

database

msdb

modify

file

(name

=

MSDBlog,filename='J:\data\MSDBLogldf');

go

alter

database

model

modify

file

(name

=

modeldev,filename='J:\data\modelmdf');

go

alter

database

model

modify

file

(name

=

modellog,filename='J:\data\modellogldf');

go

msdb、model、tempdb都可以移到我定义的目录,数据库可以启动,起来以后到数据库属性-文件看到的路径就是修改后的路径。但是master的语句也执行成功了,执行结果如下:

文件

'master'

在系统目录中已修改。新路径将在数据库下次启动时使用。

文件

'mastlog'

在系统目录中已修改。新路径将在数据库下次启动时使用。

但是将master的2个文件移动到j:\data目录下,数据库启动失败,从日志看,还是找原来的启动路径。

最近遇到一个服务器的数据库文件增长很快,情况属于正常,磁盘空间很快就要满了,但是另一个分区还有大把的空间,所以寻思着怎么把数据库文件,放过去,代码如下:

DECLARE @DBNAME VARCHAR(255)

DECLARE @TargetPath VARCHAR(255)

DECLARE @CmdCommand VARCHAR(2000)

SET @DBNAME='TEST'

SET @TargetPath='D:\Program Files\Microsoft SQL Server\MSSQL10_50MSSQLSERVER\MSSQL\DATA'

--第一步:设置数据库脱机

SET @CmdCommand= 'ALTER DATABASE '+@DBNAME+' SET OFFLINE'

EXEC(@CmdCommand)

--第二步:物理拷贝数据库文件到新目录

DECLARE @FileName VARCHAR(255)

DECLARE @SourceFullName VARCHAR(255)

DECLARE FileCur CURSOR for SELECT name,physical_name from sysmaster_files where database_id=db_id(@DBNAME)

OPEN FileCur

FETCH NEXT FROM FileCur INTO @FileName,@SourceFullName

WHILE @@FETCH_STATUS=0

BEGIN

SET @CmdCommand= 'copy "'+@SourceFullName+'" "'+@TargetPath+'"'

EXEC masterxp_cmdshell @CmdCommand

--修改数据库文件的路径指向新目录

SET @CmdCommand='ALTER DATABASE '+@DBNAME+' MODIFY FILE(FILENAME='''+@TargetPath+CASE WHEN RIGHT(@TargetPath,1)='\'THEN'' ELSE'\' END+

RIGHT(@SourceFullName, CHARINDEX('\', REVERSE(@SourceFullName))-1)+''',name='''+@FileName+''')'

EXEC(@CmdCommand)

FETCH NEXT FROM FileCur INTO @FileName,@SourceFullName

END

CLOSE FileCur

DEALLOCATE FileCur

--第三步:设置数据库联机

SET @CmdCommand= 'ALTER DATABASE '+@DBNAME+' SET ONLINE'

EXEC(@CmdCommand)

也可以把这个做成一个过程,就不在这里修改了。

1打开企业管理器,找到你要改变的数据库,右键该数据库,所有任务,分离数据库

2把c盘默认路径下的一个MDF和LDF格式的文件拷贝到d

3再打开企业管理器,右键数据库,所有任务,附加据库,找到D盘下的一个MDF和LDF格式的文件,附加 OK!

以上就是关于如何修改SQL 2008的数据文件目录全部的内容,包括:如何修改SQL 2008的数据文件目录、SQL数据库怎么用查询来设置文件路径、sql数据库可以改变数据的路径吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9422328.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存