Lekce 5 - MS-SQL krok za krokem: Import
V minulé lekci, MS-SQL krok za krokem: Export, jsme si ukázali různé typy exportů databáze.
V dnešním MS-SQL tutoriálu si ukážeme, jak do databáze
importovat data z dříve vytvořené zálohy. Konkrétně si ukážeme, jak
importovat celou databázi v podobě .dacpac souboru, celou tabulku
a pouze data tabulky.
Všechny T-SQL skripty a soubory, které dnes budeme používat, jsme vytvářeli v lekci MS-SQL krok za krokem: Export. Případně si je můžete stáhnout na konci této lekce, pokud je již nemáte.
Import celé databáze
K importu celé databáze využijeme náš DACPAC soubor,
který máme vygenerovaný (nebo ho najdeme přiložený na konci lekce).
Zkusíme jej naimportovat na náš lokální server LocalDB. V okně SQL
Server Object Explorer klikneme pravým tlačítkem na složku
Databases/ našeho konkrétního serveru, pro nás je to
(LocalDB)\MSSQLLocalDB, a zvolíme Publish Data-tier
Application...:

Otevře se nám dialog, kde nejprve zvolíme náš .dacpac
soubor, nejjednodušeji kliknutím na tlačítko Browse...:

Dále zvolíme název nové databáze, například
KopieDatabazeProWeb, a potvrdíme tlačítkem Publish.
Úspěšnost importu se vypíše v okně Data Tools Operations:

V okně SQL Server Object Explorer se nám databáze objeví až po jeho obnovení, které provedeme kliknutím na tlačítko Refresh v levém horním rohu:

Jak můžeme vidět, kopie databáze je nahraná.
Import dat
Jelikož máme vygenerovaný T-SQL skript s daty tabulky
Uzivatele, tak si je nyní zkusíme naimportovat do naší nově
přidané databáze.
Databáze však tabulku Uzivatele s nějakými daty již
obsahuje, proto daná data nejprve smažeme. Obsah tabulky si zobrazíme
tradičně pomocí View Data. Následně vybereme všechny záznamy –
například tak, že vybereme libovolný záznam a poté stisneme kombinaci
kláves Ctrl + A. Vybrané záznamy smažeme stisknutím
klávesy Delete, nebo stisknutím pravého tlačítka myši a volbou
Delete:

Nebo taktéž můžeme na tabulce zavolat příkaz
DELETE FROM:
DELETE FROM [Uzivatele];
Nyní již v tabulce nemáme žádná data, můžeme si je proto zkusit zpátky naimportovat. Import dat do tabulky provedeme spuštěním našeho uloženého T-SQL skriptu na konkrétní databázi. Pro jistotu si ho zde uvedeme:
SET IDENTITY_INSERT [dbo].[Uzivatele] ON INSERT INTO [dbo].[Uzivatele] ([Id], [Jmeno], [Prijmeni], [DatumNarozeni], [PocetClanku]) VALUES (1, N'Jan', N'Novák', N'1984-03-11', 17) INSERT INTO [dbo].[Uzivatele] ([Id], [Jmeno], [Prijmeni], [DatumNarozeni], [PocetClanku]) VALUES (2, N'Tomáš', N'Marný', N'1989-02-01', 6) INSERT INTO [dbo].[Uzivatele] ([Id], [Jmeno], [Prijmeni], [DatumNarozeni], [PocetClanku]) VALUES (3, N'Josef', N'Nový', N'1972-12-20', 9) INSERT INTO [dbo].[Uzivatele] ([Id], [Jmeno], [Prijmeni], [DatumNarozeni], [PocetClanku]) VALUES (4, N'Michaela', N'Slavíková', N'1990-08-14', 1) SET IDENTITY_INSERT [dbo].[Uzivatele] OFF
Kdybychom data importovali do jinak pojmenované tabulky, tak
samozřejmě musíme všude ve skriptu přepsat název tabulky
Uzivatele.
Spuštění skriptu ze souboru
V případě, že jsme si skript uložili do souboru, tak máme dvě možnosti, jak ho spustit.
První možností je daný soubor se skriptem přetáhnout do hlavního okna Visual Studia, čímž ho v něm otevřeme. Tento skript však nebude navázaný na naši databázi. Při spuštění skriptu pomocí tlačítka Execute proto budeme vyzváni k jejímu vybrání:

My používáme lokální databázi na lokálním serveru LocalDB, proto
zvolíme MSSQLLocalDB a v kolonce Database Name naši
databázi, autentifikaci necháme na výchozí Windows
Authentication:

Po potvrzení tlačítkem Connect se skript konečně vykoná a vypíše se zpráva:

Druhou možnost již vlastně známe. Klikneme pravým tlačítkem na požadovanou databázi v okně SQL Server Object Explorer, zvolíme New Query... a do nového skriptu zkopírujeme obsah našeho uloženého skriptu, který si můžeme otevřít v libovolném textovém editoru. Nakonec nově vytvořený skript spustíme tlačítkem Execute. Tento přístup je vhodnější v situaci, kdy si konkrétní T-SQL skript neukládáme do souboru.
Import celé tabulky
Pro import celé tabulky Uzivatele i s jejími
daty máme vygenerovaný následující T-SQL skript (také ho
najdeme v přiloženém souboru na konci lekce):
USE [databazeProWeb] GO /****** Object: Table [dbo].[Uzivatele] Script Date: 26.06.2021 15:48:35 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO DROP TABLE [dbo].[Uzivatele]; GO CREATE TABLE [dbo].[Uzivatele] ( [Id] INT IDENTITY (1, 1) NOT NULL, [Jmeno] NVARCHAR (60) NOT NULL, [Prijmeni] NVARCHAR (60) NOT NULL, [DatumNarozeni] DATE NOT NULL, [PocetClanku] INT NOT NULL ); SET IDENTITY_INSERT [dbo].[Uzivatele] ON INSERT INTO [dbo].[Uzivatele] ([Id], [Jmeno], [Prijmeni], [DatumNarozeni], [PocetClanku]) VALUES (1, N'Jan', N'Novák', N'1984-03-11', 17) INSERT INTO [dbo].[Uzivatele] ([Id], [Jmeno], [Prijmeni], [DatumNarozeni], [PocetClanku]) VALUES (2, N'Tomáš', N'Marný', N'1989-02-01', 6) INSERT INTO [dbo].[Uzivatele] ([Id], [Jmeno], [Prijmeni], [DatumNarozeni], [PocetClanku]) VALUES (3, N'Josef', N'Nový', N'1972-12-20', 9) INSERT INTO [dbo].[Uzivatele] ([Id], [Jmeno], [Prijmeni], [DatumNarozeni], [PocetClanku]) VALUES (4, N'Michaela', N'Slavíková', N'1990-08-14', 1) SET IDENTITY_INSERT [dbo].[Uzivatele] OFF
Smazání tabulky
Ať vidíme, že se skript opravdu provedl, tak si existující tabulku
Uzivatele nejprve smažeme. V SQL Server Object Explorer
na ni klikneme pravým tlačítkem a zvolíme Delete:

Na pozadí se vygeneruje skript pro její smazání a my ho jen potvrdíme tlačítkem Update Database:

Spuštění skriptu
Nyní se dáme na samotný import. Náš T-SQL skript opět otevřeme jeho
přetažením do okna Visual Studia, nebo ho z této lekce překopírujeme do
okna New Query.... Ve skriptu nezapomeneme změnit název databáze za
příkazem USE na naši cílovou databázi:
USE [KopieDatabazeProWeb] GO -- ...
Skript spustíme tlačítkem Execute a provážeme jej s naší databází:

Vypíše se nám, že tabulka nemohla být smazána, jelikož neexistuje, ale to nevadí, zbytek skriptu se provede bez potíží:

Tímto jsme ukončili téma exportu a importu databáze ve Visual Studiu
Pro pokročilejší možnosti
exportu a importu je nutné použít nástroj SQL
Server Management Studio. Ten umožňuje například i export a import do/z
různých formátů (csv, xlsx a další).
V následujícím kvízu, Kvíz - Tvorba, vkládání, import a export dat v MS-SQL, si vyzkoušíme nabyté zkušenosti z předchozích lekcí.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkamiStaženo 1061x (4.03 kB)
