解决方法
您不必停止sql Server服务来移动数据库文件,但必须使特定数据库脱机.这是因为您在访问文件时无法移动文件并使数据库脱机会阻止sql Server应用程序使用这些文件.
移动它们的过程非常简单.已经描述了Detach / Attach,但它并不是那么复杂.
使用ALTER DATABASE命令更改文件位置:
USE master; --do this all from the master ALTER DATABASE foo MODIFY FILE (name='DB_Data1',filename='X:\NewDBFile\DB_Data1.mdf'); --Filename is new location
请注意,您无需在此命令中声明旧位置.更改此路径不会立即生效,但会在下次启动数据库时使用.
将数据库设置为脱机
(我使用WITH ROLLBACK IMMEDIATE来踢出所有人并回滚所有当前打开的事务)
ALTER DATABASE foo SET OFFLINE WITH ROLLBACK IMMEDIATE;
将文件移动/复制到新位置
只需使用您喜欢的方法复制文件(单击’拖动,XCopy,复制项,Robocopy)
将数据库联机
ALTER DATABASE foo SET ONLINE;
您可以在here中看到更详细的描述.