SQL - jak dostat data do databáze   zodpovězená otázka

C#, VB.NET, SQL, Databáze

Dobrý den, měl bych takový drobný dotaz na SQL příkaz insert.

Základní použití tohoto příkazu je i díky článkům na tomto webu celkem zřejmé.

Narazil jsem nyní ale na jiný praktický problém:

Měl jsem ve své původní internetové prezentaci data uložená v MySQL. Vzhledem k tomu, že nejjednodušším způsobem jejich hromadné aktualizace (přenosu z mé lokální "vývojové" instalace na db server) byl přes "dump" soubor, kdy jsem si databázi vydumpoval do texťáku, ve kterém se tímto způsobem vytvořila kolekce SQL příkazů, jejichž spuštěním na serveru se mi celá databáze aktualizovala (nebo třeba i zcela nově vytvořila).

Nyní přemýšlím o nejjednodušší formě přenosu těchto dat na MS SQL 2005 a protože tyto "dump" soubory mám k dispozici, považoval jsem tuto cestu za nejjednodušší. Jenomže evidentně formát SQL, které používalo MySQL a které používá MS SQL není zdaleka stejný.

Chtěl bych se tedy zeptat, existuje-li nějaká jednoduchá modifikace - zvláště pro příkaz INSERT (protože ten je tím hlavním, vše ostatní je možné udělat ručně).

MySQL totiž vytvořil takovýto formát SQL příkazu:

INSERT INTO `cenik` (`popis`, `koment`, `c_nazev`, `motor`, `cena`, `krivka`, `Q_max`, `p_max`) VALUES ('PKm  60', 'jednofázový elektromotor, U=230V', 'PK(m)', 0.37, 2217.00, 'PK(m)  60', 0, 0),
('PKm  65', 'jednofázový elektromotor, U=230V', 'PK(m)', 0.5, 3213.00, 'PK(m)  65', 0, 0),
...
...
('PKm  80', 'jednofázový elektromotor, U=230V', 'PK(m)', 0.75, 4273.00, 'PK(m)  80', 0, 0);

MS SQL s tím má dva zásadní problémy - jednak neuznává názvy polí a tabulky ve zpětných apostrofech - to jsem velice jednoduše poléčil.

Problémem ale je, existuje-li v MS SQL možnost jedním insertem přidání více řádků tak, jak to řeší MySQL v této ukázce, protože výše uvedený příkaz skončí na čárce za první sanou dat, strašně nadává a dál se mu nechce. No a když jsem se díval do lekce napsané panem Hercegem, tak tam skutečně používá pro každý řádek dat samostatný "úplný" insert. Takže dotaz zní - MS SQL nezná takovýto vícenásobný insert?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Už jsem to vyřešil - při exportu dat z MySQL lze jak zakázat použití zpětných uvozovek v názvech, tak i vynutit úplné inserty (pro každý řádek jeden). Takže jsem to spravil na straně MySQL.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback