Let’s say you have an existing Microsoft SQL data and want to move it to a
different disk or directory. Running the query below shows the logical name and the file location of your schema.
SELECT name AS FileLogicalName, physical_name AS FileLocation FROM sys.master_files
WHERE database_id = DB_ID('HR');
Existing Location
FileLogicalName | FileLocation |
---|---|
HR | C:\MSSQL_DATA\OldPath\HR.mdf |
HR_log | C:\MSSQL_DATA\OldPath\HR.ldf |
Target New Location
FileLogicalName | FileLocation |
---|---|
HR | D:\MSSQL_DATA\MSSQL15.MSSQLSERVER\MSSQL\Data\HR.mdf |
HR_log | D:\MSSQL_DATA\MSSQL15.MSSQLSERVER\MSSQL\Data\HR.0.ldf |
Steps to move the database files
-
Take the database offline
ALTER DATABASE HR SET OFFLINE
-
Moves the files manually
- Navigate to C:\MSSQL_DATA\OldPath\
- Move HR.mdf and HR.ldf to the new location
-
Update SQL Server with the new file paths
ALTER DATABASE HR MODIFY FILE (Name = HR, FILENAME = 'D:\MSSQL_DATA\MSSQL15.MSSQLSERVER\MSSQL\Data\HR.mdf') ALTER DATABASE HR MODIFY FILE (Name = HR_log, FILENAME = 'D:\MSSQL_DATA\MSSQL15.MSSQLSERVER\MSSQL\Data\HR.0.ldf')
-
Bring the database back online
ALTER DATABASE HR SET ONLINE;