Sql Server更改现有数据库的数据和日志路径

时间:2011-07-28 09:02:21

标签: sql database sql-server-2008 data-files log-files

我正在安装SQL Server 2008,其上运行着近15个数据库。现在由于空间的稀缺,我想将数据路径移动到另一个驱动器。这是什么最好的做法。请详细说明是否包含任何SQL命令,因为我对SQL Server管理相对较新。

注意 - 我已经将SQL Server属性中的路径从SQL Management Studio 2008更改为新路径。但我还希望现有数据库驻留在新路径

2 个答案:

答案 0 :(得分:12)

首先,分离数据库:

USE master;
GO
-- Important! We need to drop the existing connections.
ALTER DATABASE DBName SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
EXEC sp_detach_db @dbname = N'DBName';
GO

下一步 - 将此数据库文件的.mdf和.ldf文件复制到新位置

然后附上数据库:

USE master;
EXEC sp_attach_db @dbname = N'dbName', 
@filename1 = N'',  --path do .mdf
@filename2 = N'';  --path to .ldf
GO

如果您不希望逐个附加和分离所有数据库,则可以使用在sys.databases中搜索的curosr生成SQL脚本以附加和分离所需的所有数据库(当然不包括系统)动态管理视图。但是不要忘记复制数据库文件。

答案 1 :(得分:1)

一种方法是分离和附加。

有关命令/步骤,请参阅MSDN文章"How to: Move a Database Using Detach and Attach (Transact-SQL)"