02.08.2019, Vladimír Klaus, navštíveno 6409x
Občas je třeba zkopírovat data z jedné databáze do druhé. Pokud jde o kompletní kopii, pak je samozřejmě ideální udělat zálohu a pak ji "obnovit" do jiné databáze, případně i na jiném serveru. Potíž nastává v případě, že potřebujete udělat zálohu na nějakém hostingu, což neprojde, protože pravděpodobně nemáte k dispozici lokální disky na daném serveru, kam by se záloha vytvořila. A vytvořit zálohu na jiný server nebo k sobě na počítač nelze.
Pak nezbývá než použít funkci Import Data, což je funkce, u které vyberete zdrojovou databázi, tabulky, nějaké ty parametry a cílovou databázi, do které se vyexportovaná data ihned naimportují.
V SQL Management Studiu klikněte na cílové DB pravým tlačítkem a zvolte Tasks > Import Data. Zvolte správný driver a server, ale také autentifikaci. Pozor, v tuto chvíli vybíráte zdrojovou databázi!
V dalším kroku vybíráte cílovou databázi. Pokud je to opět nějaká vaše lokální testovací, asi necháte Windows autentifikaci, ale jinak nezapomeňte nastavit správné jméno a heslo.
Dále asi vyberete kopii tabulek.
Nyní vyberte všechny tabulky, které chcete zkopírovat.
Zde je ale velmi důležité označit všechny vybrané tabulky a použít Edit Mappings a povolit "Enable identity insert", tedy aby bylo možné při kopírování vkládat/přepisovat i ID položky. Další volby ohledně odstraňování existujících záznamů zvolte dle situace.
Pokud na "Enable identity insert" zapomenete, velmi pravděpodobně dojde k chybám (konfliktu) ID a nic se nevloží.
"Error 0xc0202049: Data Flow Task 1: Failure inserting into the read-only column"
Pak už nezbývá než export/import spustit...
Ještě souhrnná informace před spuštěním.
Na závěr se ukáže, zda akce proběhla a kolik záznamů bylo zkopírováno.
Pokud jste nevybrali smazání řádek, jde o přidávání do cílové tabulky. Takže počítejte s případnými konflikty díky shodnému ID. A pokud máte nastavené nějaké "constraints", tak ani to nemusí projít. Pak je na zvážení, zda constraints před touto akcí vypnout nebo celou situaci řešit jinak.
Zdroje: