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?
|