10

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

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

4

2 回答 2

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 脚本来附加和分离您需要的所有数据库(当然除了系统) . 但不要忘记复制数据库文件。

于 2011-07-28T09:26:48.350 回答
1

一种方法是分离和连接。

至于命令/步骤,请参阅 MSDN 文章“How to: Move a Database Using Detach and Attach (Transact-SQL)”

于 2011-07-28T09:06:23.400 回答