【发布时间】:2019-12-05 19:45:44
【问题描述】:
我有两个数据库:
-
database_A。文件名是database_A.mdf。 -
database_B。文件名是database_B.mdf。
然后我做什么:
-
Drop database_A。 - 将
database_B重命名为database_A:sp_renamedb 'database_B','database_A。
但是,文件名仍然是database_B.mdf。
是否可以仅通过代码将 database_B.mdf 重命名为 database_A.mdf 而无需设置数据库位置的路径?我无法使用 Management Studio 分离数据库。
类似这样,但是没有设置路径名:
ALTER DATABASE database_name
MODIFY FILE ( NAME = logical_file_name,
FILENAME = ' new_path/os_file_name_with_extension ' )
我不知道这是否有助于澄清我为什么需要它,但是,我会尝试为什么我需要它。这对我来说是必要的,因为当我创建 database_A 时,我会收到这个错误:
无法创建文件“...\database_A.mdf”,因为它已经存在。
是否可以仅通过代码将 database_B.mdf 重命名为 database_A.mdf 而无需设置数据库位置的路径?我无法使用 Management Studio 分离数据库。
【问题讨论】:
-
不,你必须移动文件,就像你展示的那样。重命名数据库不会更改其文件的名称。
-
@Larnu 感谢您的回答。通过移动文件,你的意思是这个代码
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_file_name, FILENAME = ' new_path/os_file_name_with_extension ' )? -
就是这个。
-
请注意,您可以获取文件的路径,然后对其进行更新,然后使用更新后的路径对其进行移动/重命名。所以你不必硬编码任何东西。
-
有一个相当完整的逐步过程here
标签: sql sql-server tsql sql-server-2017