Mam system MS SQL Server 2008 Express, który zawiera bazę danych, którą chciałbym „skopiować i zmienić nazwę” (do celów testowych), ale nie znam prostego sposobu na osiągnięcie tego.
Zauważam, że w wersji R2 programu SQL Server jest kreator kopii bazy danych, ale niestety nie mogę dokonać aktualizacji.
Baza danych, o której mowa, jest około koncertu. Próbowałem przywrócić kopię zapasową bazy danych, którą chcę skopiować do nowej bazy danych, ale bez powodzenia.
Odpowiedzi:
Zainstaluj Microsoft SQL Management Studio, które możesz bezpłatnie pobrać ze strony Microsoft:
Wersja 2008
Microsoft SQL Management Studio 2008 jest częścią SQL Server 2008 Express z zaawansowanymi usługami
Wersja 2012
Kliknij przycisk Pobierz i sprawdź
ENU\x64\SQLManagementStudio_x64_ENU.exe
Wersja 2014
Kliknij przycisk Pobierz i sprawdź MgmtStudio
64BIT\SQLManagementStudio_x64_ENU.exe
Otwórz Microsoft SQL Management Studio .
źródło
Kliknij bazę danych prawym przyciskiem myszy, aby sklonować, kliknij
Tasks
, kliknijCopy Database...
. Postępuj zgodnie z kreatorem i gotowe.źródło
Możesz spróbować odłączyć bazę danych, skopiować pliki do nowych nazw w wierszu polecenia, a następnie dołączyć obie bazy danych.
W SQL:
W wierszu polecenia (uprościłem ścieżki plików na potrzeby tego przykładu):
Znowu w SQL:
źródło
select * from OriginalDB.sys.sysfiles
znaleźć lokalizację plików bazy danych.Permission denied
z.mdf
akt. Nie potrzebuję go teraz, potrzebowałem tylko kopii zapasowej oryginalnej DB, więc mogę później nadpisać oryginalną DB, jestem ciekawy, dlaczego otrzymuję taki błąd.exec sp_helpdb @dbname='TEMPDB';
Okazuje się, że próbowałem przywrócić z kopii zapasowej niepoprawnie.
Początkowo utworzyłem nową bazę danych, a następnie próbowałem przywrócić kopię zapasową tutaj. To, co powinienem był zrobić i co zadziałało, to wywołanie okna dialogowego przywracania i wpisanie nazwy nowej bazy danych w polu docelowym.
Krótko mówiąc, przywrócenie z kopii zapasowej załatwiło sprawę.
Dziękujemy za wszystkie opinie i sugestie
źródło
To jest skrypt, którego używam. Trochę trudne, ale działa. Testowane na SQL Server 2012.
źródło
SET @sourceDb_log = (SELECT files.name FROM sys.databases dbs INNER JOIN sys.master_files files ON dbs.database_id=files.database_id WHERE dbs.name=@sourceDb AND files.type=1)
osobnej zmiennej dla @sourceDb_data z podobnym zapytaniem (podstawianie wfiles.type=0
). HTH!Żadne z wymienionych tutaj rozwiązań nie działało dla mnie - używam SQL Server Management Studio 2014.
Zamiast tego musiałem odznaczyć pole wyboru „Wykonaj kopię zapasową dziennika ogona przed przywróceniem” na ekranie „Opcje”: w mojej wersji jest domyślnie zaznaczone i uniemożliwia zakończenie operacji przywracania. Po odznaczeniu operacji przywracania przebiegła bez problemów.
źródło
Korzystając z MS SQL Server 2012, musisz wykonać 3 podstawowe kroki:
Najpierw wygeneruj
.sql
plik zawierający tylko strukturę źródłowej bazy danych.sql
plik lokalniePo drugie, zamień źródłową bazę danych na docelową w
.sql
plikuNa koniec zapełnij danymi
Data Source=Mehdi\SQLEXPRESS;Initial Catalog=db_test;User ID=sa;Password=sqlrpwrd15
Gotowe.
źródło
W SQL Server 2008 R2 wykonaj kopię zapasową bazy danych jako plik w folderze. Następnie wybierz opcję przywracania, która pojawia się w folderze „Baza danych”. W kreatorze wprowadź nową nazwę, którą chcesz w docelowej bazie danych. I wybierz przywróć z pliku i użyj właśnie utworzonego pliku. Po prostu to zrobiłem i to było bardzo szybkie (moje DB było małe, ale nadal) Pablo.
źródło
Jeśli baza danych nie jest bardzo duża, możesz spojrzeć na polecenia „Baza danych skryptów” w SQL Server Management Studio Express, które znajdują się w menu kontekstowym poza samym elementem bazy danych w eksploratorze.
Możesz wybrać wszystko, co chcesz napisać; oczywiście chcesz obiektów i danych. Następnie zapiszesz cały skrypt w jednym pliku. Następnie możesz użyć tego pliku do odtworzenia bazy danych; po prostu upewnij się, że
USE
polecenie u góry jest ustawione na odpowiednią bazę danych.źródło
Rozwiązanie oparte na tym komentarzu: https://stackoverflow.com/a/22409447/2399045 . Wystarczy ustawić ustawienia: nazwa bazy danych, folder tymczasowy, folder plików db. A po uruchomieniu będziesz mieć kopię DB o nazwie w formacie „sourceDBName_rrrr-mm-dd”.
źródło
Skrypt oparty na odpowiedzi Joe ( odłącz, skopiuj pliki, załącz oba ).
Nie jest to konieczne, ale może błąd odmowy dostępu podczas wykonywania.
@dbName
i@copyDBName
zmienne.źródło
Możesz po prostu utworzyć nową bazę danych, a następnie przejść do zadań, zaimportować dane i zaimportować wszystkie dane z bazy danych, którą chcesz zduplikować do właśnie utworzonej bazy danych.
źródło
Innym sposobem jest załatwienie sprawy za pomocą kreatora importu / eksportu , najpierw utwórz pustą bazę danych, a następnie wybierz źródło, którym jest serwer ze źródłową bazą danych, a następnie w miejscu docelowym wybierz ten sam serwer z docelową bazą danych (używając pustej bazy danych utworzyłeś na początku), a następnie kliknij przycisk Zakończ
Stworzy wszystkie tabele i przeniesie wszystkie dane do nowej bazy danych,
źródło