将SQL Server 2008数据库文件移动到新的文件夹位置

Fiv*_*ols 49 sql sql-server-2008

逻辑名称

  • my_Data
  • my_Log

路径:

  • C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
  • C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA

文件名:

  • my.MDF
  • my_1.LDF

将这些文件移动到新位置的sql脚本是什么: D:\DATA

数据库是实时的,所以我需要关闭现有的连接.

Aar*_*and 85

你忘了提到数据库的名称(是"我的"?).

ALTER DATABASE my SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

ALTER DATABASE my SET OFFLINE;

ALTER DATABASE my MODIFY FILE 
(
   Name = my_Data,
   Filename = 'D:\DATA\my.MDF'
);

ALTER DATABASE my MODIFY FILE 
(
   Name = my_Log, 
   Filename = 'D:\DATA\my_1.LDF'
);
Run Code Online (Sandbox Code Playgroud)

现在,您必须手动将文件从当前位置移动到D:\ Data \(并记住在MODIFY FILE命令中更改它们时手动重命名)...然后您可以将数据库重新联机:

ALTER DATABASE my SET ONLINE;

ALTER DATABASE my SET MULTI_USER;
Run Code Online (Sandbox Code Playgroud)

这假定SQL Server服务帐户在D:\ Data \文件夹上具有足够的权限.如果不是,您将在SET ONLINE命令中收到错误.

  • 如果要更改数据库文件的逻辑名称,可以使用`ALTER DATABASE my MODIFY FILE(Name = <oldname>,NewName = <newname>);`来实现.您必须在线使用数据库(例如,在"SET ONLINE"之后但在"SET MULTI_USER"之前); [信息](http://msdn.microsoft.com/en-us/library/bb522469.aspx). (5认同)

小智 17

您可以在SQL Server Management Studio中使用"分离/附加选项".

检查:使用分离和附加移动数据库


小智 6

要添加文件所需的权限,请向以下本地用户添加和授予权限:SQLServerMSSQLUser $ COMPUTERNAME $ INSTANCENAME,其中COMPUTERNAMEINSTANCENAME必须分别替换为计算机名和MSSQL实例.