it-swarm-eu.dev

Přechod na nižší verzi z SQL Server 2008 na 2005

Databázové soubory vytvořené pomocí SQL 2008 nejsou kompatibilní s rokem 2005. Existuje nějaké řešení?

32
Sevki

Nejsou nutné žádné nástroje třetích stran. SQL Server 2008 Management Studio nám poskytlo velmi výkonný nástroj pro převod databáze dolů, protože do průvodce „Skriptová databáze“ přidali možnost „Data skriptu“.

Jednoduše klikněte pravým tlačítkem na DB v SQL2008 SSMS a přejděte na Úkoly, pak na „Generovat skripty“

Projděte si průvodce, ujistěte se, že jste vybrali „True“ pro „Script Data“ v možnostech tabulky/zobrazení. Vyberte všechny objekty a potom spusťte skript, který vytvoří na serveru 2005. (Nezapomeňte, že vytvořený skript může být masivní, pokud je původní databáze velmi velká!)

Všimněte si, že můžete dokonce spustit průvodce proti serveru SQL2005 a převést databázi SQL2005 na SQL2000 (samozřejmě budete potřebovat nástroje 2008 nainstalované na vaší pracovní stanici).

16
BradC

Mohli byste BCP data z jedné instance serveru SQL do jiné instance. To by byl nejrychlejší způsob, jak zkopírovat data z jedné verze do druhé. V závislosti na objemu dat to může trvat dlouho.

16

Neexistuje žádný přímý způsob, o kterém vím, bohužel downgrade DB z formátu 2008 na 2005.

Způsob, jakým jsem to udělal v minulosti (ve skutečnosti se staršími verzemi serveru SQL, ale proces bude stejný) je:

  1. Obnovte DB na instanci SQL2008, pokud tak již nebylo provedeno
  2. Vytvořte prázdnou DB se správnými strukturami (tabulky, indexy, omezení, pohledy, procs, triggery, ...) na instanci SQL2005. Doufejme, že to můžete provést z existující procedury sestavení a/nebo zdrojového kódu, ale pokud ne, můžete použít SQL Server Manager k vytvoření skriptů pro vše v DB 2005 a výsledek spustit na prázdné v instanci 2008.
  3. Zajistěte, aby se tyto dvě instance mohly vzájemně vidět (tj. Neexistovaly žádné brány firewall blokující připojení, pokud jsou instance na různých počítačích) a propojte je pomocí sp_addlinkedserver .
  4. Zkopírujte všechna data z jedné databáze do druhé. Pokud neexistují žádná omezení cizího klíče a podobné problémy ve spouštěčích, které se obávají, můžete jednoduše propojit DB a kurzorem procházet seznam tabulek (výběrem ze sys.objects) a spuštěním
    INSERT destinationserver.destinationdb.schema.table SELECT * FROM sourcedb.schema.table
    (nebo INSERT schema.table SELECT * FROM sourceserver.sourcedb.schema.table pokud jste takto propojili instance)
    pro každou tabulku. Máte-li konzistence mezi tabulkami vynucující omezení a spouštěče, budete samozřejmě muset být o něco chytřejší, pokud jde o řazení těchto operací, zejména pokud máte cyklická omezení jako tabulka s omezením založeným na sobě (jedna přidržovací hierarchie) data, jako možný příklad).

Může být účinnější pouze zkopírovat data nejprve a přidat další strukturu (indexy, procs, triggery, ...) po kroku 3. Tím se zabrání problémům s vkládáním řádků způsobených omezeními a triggery a vytvářením indexů na konec by měl být teoreticky rychlejší než jejich sestavení, protože jsou přidána všechna data - i když pokud máte v tabulkách nějaké seskupené indexy, vytvořte je před přidáním dat, protože by po vytvoření nebylo rychlejší vytvořit.

To samozřejmě předpokládá, že žádný z vašich objektů nepoužívá specifické funkce SQL 2008 - pokud ano, doufejme, že takové věci zjistíte a napravíte, když dojde k chybě při opětovném sestavení schématu. Pokud se některý z vašich kódů spoléhá na oficiálně nedefinované chování, které se mezi různými verzemi serveru SQL Server lišilo, možná budete mít mnohem jemnější a nepolapitelnější chyby, které můžete později ulovit a odstranit.

15
David Spillett

Tváří v tvář podobné situaci a pomocí Database Publishing Wizard ke skriptovému schématu a datům pro SQL Server 2005 z databáze SQL Server 2008).

SQL Server Hosting Web Service (a sada nástrojů)

Průvodce publikováním databáze

7
CoderHawk

Nejprve musíte databázi skriptovat a ujistěte se, že ve verzi zadáte typ, do kterého chcete snížit hodnocení. A zkopírovat data z vyšší verze do nižší verze SQL Data srovnání vám udělá trik pro vás.

Hodně štěstí!

1
Mbongeni