我正在安装 SQL Server 2008,上面运行了近 15 个数据库。现在由于空间不足,我想将数据路径移动到另一个驱动器。对此的最佳做法是什么。如果包含任何 SQL 命令,请详细解释,因为我对 SQL Server 管理相对较新。
注意 -我已经将 SQL Server 属性中的路径从 SQL Management Studio 2008 更改为新路径。但我也希望现有数据库驻留在新路径中。
我正在安装 SQL Server 2008,上面运行了近 15 个数据库。现在由于空间不足,我想将数据路径移动到另一个驱动器。对此的最佳做法是什么。如果包含任何 SQL 命令,请详细解释,因为我对 SQL Server 管理相对较新。
注意 -我已经将 SQL Server 属性中的路径从 SQL Management Studio 2008 更改为新路径。但我也希望现有数据库驻留在新路径中。
首先,分离数据库:
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 脚本来附加和分离您需要的所有数据库(当然除了系统) . 但不要忘记复制数据库文件。
一种方法是分离和连接。
至于命令/步骤,请参阅 MSDN 文章“How to: Move a Database Using Detach and Attach (Transact-SQL)”