it-swarm.dev

Obniżenie wersji SQL Server 2008 na 2005

Pliki baz danych zbudowane przy użyciu SQL 2008 nie są kompatybilne z 2005 r. Czy istnieje jakieś rozwiązanie?

32
Sevki

Nie są potrzebne narzędzia innych firm. SQL Server 2008 Management Studio dał nam bardzo potężne narzędzie do konwersji bazy danych w dół, ponieważ dodali opcję „Dane skryptu” do kreatora „Baza danych skryptów”.

Po prostu kliknij prawym przyciskiem myszy DB w SQL2008 SSMS i przejdź do Zadania, a następnie „Generuj skrypty”

Przejdź przez kreatora, pamiętaj, aby wybrać „Prawda” dla „Dane skryptu” w opcjach tabeli/widoku. Wybierz wszystkie obiekty, a następnie uruchom skrypt, który tworzy na serwerze 2005. (Należy pamiętać, że utworzony skrypt może być masywny jeśli oryginalna baza danych jest bardzo duża!)

Pamiętaj, że możesz nawet uruchomić kreatora na serwerze SQL2005, aby przekonwertować bazę danych SQL2005 na SQL2000 (oczywiście na stacji roboczej potrzebujesz oczywiście narzędzi 2008).

16
BradC

Możesz BCP dane z jednej instancji SQL Server do innej instancji. Byłby to najszybszy sposób na skopiowanie danych z jednej wersji do drugiej. W zależności od ilości danych może to zająć dużo czasu.

16

Niestety nie ma bezpośredniego sposobu na obniżenie DB z formatu z 2008 r. Do 2005 r.

Sposób, w jaki to robiłem w przeszłości (właściwie ze starszymi wersjami serwera SQL, ale proces będzie taki sam) to:

  1. Przywróć bazę danych w instancji SQL2008, jeśli jeszcze tego nie zrobiono
  2. Zbuduj pustą bazę danych z odpowiednimi strukturami (tabele, indeksy, ograniczenia, widoki, procy, wyzwalacze, ...) w instancji SQL2005. Mamy nadzieję, że możesz to zrobić na podstawie istniejącej procedury kompilacji i/lub kodu źródłowego, ale jeśli nie, możesz użyć SQL Server Manager do tworzenia skryptów dla wszystkiego w DB 2005 i uruchomić wynik na pustym w instancji 2008.
  3. Upewnij się, że oba wystąpienia mogą się widzieć (tzn. Nie ma zapór blokujących połączenia, jeśli wystąpienia znajdują się na różnych komputerach) i połącz je za pomocą sp_addlinkedserver .
  4. Skopiuj wszystkie dane z jednej bazy danych na drugą. Jeśli nie ma ograniczeń klucza obcego i podobnych problemów w wyzwalaczach, możesz się martwić, możesz po prostu połączyć bazy danych razem i przewinąć listę tabel (wybierając je z sys.objects) i uruchomić
    INSERT destinationserver.destinationdb.schema.table SELECT * FROM sourcedb.schema.table
    (lub INSERT schema.table SELECT * FROM sourceserver.sourcedb.schema.table jeśli w ten sposób powiązałeś instancje)
    dla każdej tabeli. Jeśli masz wymuszanie spójności i wyzwalaczy spójności między tabelami, oczywiście musisz być nieco bardziej sprytny w kwestii kolejności tych operacji, szczególnie jeśli masz ograniczenia cykliczne, takie jak tabela z ograniczeniem opartym na sobie (jedna hierarchia trzymania dane, jako możliwy przykład).

Bardziej wydajne może być po prostu skopiowanie danych najpierw i dodanie całej innej struktury (indeksy, procy, wyzwalacze, ...) po kroku 3. Pozwala to uniknąć problemów z porządkowaniem wstawiania wierszy spowodowanych ograniczeniami i wyzwalaczami oraz budowania indeksów w koniec powinien teoretycznie być szybszy niż budowanie ich, ponieważ wszystkie dane są dodawane - chociaż jeśli masz jakieś tabele indeksów klastrowych w twoich tabelach, utwórz je przed dodaniem danych, ponieważ nie byłoby to szybsze tworzenie po fakcie.

Oczywiście wszystko to zakłada, że ​​żaden z twoich obiektów nie korzysta z funkcji specyficznych dla SQL 2008 - jeśli tak, miejmy nadzieję, że odkryjesz i naprawisz takie rzeczy, gdy wystąpią błędy podczas przebudowywania schematu. Jeśli którykolwiek z Twoich kodów opiera się na oficjalnie niezdefiniowanym zachowaniu, które różni się w zależności od wersji programu SQL Server, możesz mieć o wiele bardziej subtelne i nieuchwytne błędy, które można później wyłapać i usunąć.

15
David Spillett

Napotkałem podobną sytuację i użyłem Database Publishing Wizard do skryptu schematu i danych dla SQL Server 2005 z bazy danych SQL Server 2008).

SQL Server Hosting Web Service (i zestaw narzędzi)

Kreator publikacji bazy danych

7
CoderHawk

Najpierw musisz napisać skrypt do bazy danych i upewnić się, że w wersji, którą określisz, chcesz obniżyć ocenę. I skopiowanie danych z wyższej wersji do niższej wersji SQL Data porównywania zrobi dla ciebie lewę.

Powodzenia!

1
Mbongeni