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

Sql Server更改现有数据库的数据和日志路径,sql,database,sql-server-2008,data-files,log-files,Sql,Database,Sql Server 2008,Data Files,Log Files,我正在安装SQLServer2008,上面运行着将近15个数据库。现在由于空间不足,我想将数据路径移动到另一个驱动器。这方面的最佳做法是什么。如果包含任何SQL命令,请详细解释,因为我对SQL Server管理相对较新 注意-我已经将SQL server属性中的路径从SQL Management Studio 2008更改为新路径。但我也希望现有数据库驻留在新路径中一种方法是分离和连接 关于命令/步骤,请参阅MSDN文章首先,分离数据库: USE master; GO -- Important!

我正在安装SQLServer2008,上面运行着将近15个数据库。现在由于空间不足,我想将数据路径移动到另一个驱动器。这方面的最佳做法是什么。如果包含任何SQL命令,请详细解释,因为我对SQL Server管理相对较新


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

一种方法是分离和连接


关于命令/步骤,请参阅MSDN文章

首先,分离数据库:

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
USE master;
EXEC sp_attach_db @dbname = N'dbName', 
@filename1 = N'',  --path do .mdf
@filename2 = N'';  --path to .ldf
GO
下一步-将此数据库文件的.mdf和.ldf文件复制到新位置

然后连接数据库:

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
USE master;
EXEC sp_attach_db @dbname = N'dbName', 
@filename1 = N'',  --path do .mdf
@filename2 = N'';  --path to .ldf
GO
如果不希望逐个附加和分离所有数据库,可以使用在sys.databases动态管理视图中搜索的curosr生成SQL脚本来附加和分离所需的所有数据库(当然是execept system)。但别忘了复制数据库文件