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 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;