Przeniesienie plików bazy MSSQL do nowej lokalizacji

Przeniesienie bazy mssql do nowej lokalizacji wymaga odpowiedniej kolejności:

1) Sprawdź aktualne ścieżki plików

use master
SELECT name, physical_name, type_desc
FROM sys.master_files
WHERE database_id = DB_ID('test1');

wynik z name i physical_name skopiuj sobie na bok, z tej lokalizacji będziesz kopiował zwrócone pliki do nowego folderu

2) Odłącz bazę (DETACH)

USE master;
GO
ALTER DATABASE test1 
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
EXEC sp_detach_db 'test1';


3) Fizyczne przeniesienie plików

Skopiuj pliki bazy tj: .mdf, .ndf, .ldf w nowe lokalizacje na dysku.

4) Prawa do folderu i plików

a) Upewnij się, że konto usługi SQL Server ma dostęp do nowego katalogu (prawo odczytu/zapisu).
Zwykle: 
NT Service\MSSQLSERVER (ale sprawdzić kto uruchamia usługę)
Klikasz docelowy folder z bazą - właściwości - Zabezpieczenia - Edytuj - Dodaj

właściwości folderu
właściwości folderu dodanie użytkownika MSSQL

b) Jeśli wykonujesz podłączenie z MngStudio logując się swoim kontem domenowym,  upewnij się aby ten użytkownik również miał prawa folderu z plikami baz tj. opcja zaawansowane i dodać swoje konto.
Bez tych punktów MSSQL będzie miał błąd dostępu do plików i nie podepnie bazy.

5. Podłącz bazę z nowymi ścieżkami (ATTACH)

USE master;
GO
CREATE DATABASE test1 ON 
    (FILENAME = 'C:\Baza_MDF\test1.mdf'),
    (FILENAME = 'C:\Baza
_MDF\test1.ndf'),
    (FILENAME = 'F:\Baza
_MDF\test1.ldf')
FOR ATTACH;