Post date: Jan 23, 2014 9:41:14 AM
If you want to move the physical files of your database you will need to follow a few steps.
Don't trust this script, always review any scripts you find online.
If you are moving files for multiple databases simply adjust the WHERE clause of the script to include all of them.
USE master;GODECLARE @logLocation VARCHAR(4000) = 'I:\log\';DECLARE @dataLocation VARCHAR(4000) = 'J:\dbdata\';SELECT 'ALTER DATABASE '+db_name(database_id)+' MODIFY FILE ( NAME = '+name+', FILENAME = '''+case type_desc when 'log' THEN @logLocation + physicalFile when 'rows' then @datalocation + physicalFile end+''');'FROM sys.master_filescross APPLY( SELECT SUBSTRING(physical_name, LEN(physical_name) - CHARINDEX('\',REVERSE(physical_name)) + 2, CHARINDEX('\',REVERSE(physical_name)))) files(physicalFile)WHERE database_id = DB_ID(N'AdventureWorks2012');GO