Logical Name
my_Data
my_Log
Path:
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
FileName:
my.MDF
my_1.LDF
What would be the sql script to move these files to a new location: D:\DATA
Database is live so I would need to close existing connections.
In SQL Server, you can move system and user databases by specifying the new file location in the FILENAME clause of the ALTER DATABASE statement. Data, log, and full-text catalog files can be moved in this way. This may be useful in the following situations: Failure recovery.
Right-click the instance and select Properties. In the Server Properties dialog box, select Database Settings. Under Database Default Locations, browse to the new location for both the data and log files. Stop and start the SQL Server service to complete the change.
You forgot to mention the name of your database (is it "my"?).
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' );
Now here you must manually move the files from their current location to D:\Data\ (and remember to rename them manually if you changed them in the MODIFY FILE command) ... then you can bring the database back online:
ALTER DATABASE my SET ONLINE; ALTER DATABASE my SET MULTI_USER;
This assumes that the SQL Server service account has sufficient privileges on the D:\Data\ folder. If not you will receive errors at the SET ONLINE command.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With