IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

4. diel - MS-SQL krok za krokom: Vývoz

V minulej lekcii, MS-SQL krok za krokom: Vkladanie a mazanie dát v tabuľke , sme si ukázali vkladanie a mazanie záznamov.

Dnes si MS-SQL tutoriálu vyskúšame vyexportovať našu databázu, čo sa nám bude určite mnohokrát hodiť.

Export (alebo tiež "záloha") je súbor s SQL príkazy, ktorý nám môže slúžiť na zálohu či migráciu databázy alebo len jej časti.

Export môžeme rozdeliť na:

  • kompletný export - súbor bude obsahovať ako štruktúru tabuliek, tak i ich dáta
  • export štruktúry - súbor bude obsahovať len štruktúru databázy taký export môže obsahovať všetky alebo len vybrané tabuľky
  • taký export môže obsahovať všetky alebo len vybrané tabuľky
  • export dát - súbor bude obsahovať len dáta tabuliek tabuľky môžeme špecifikovať
  • tabuľky môžeme špecifikovať

Najprv musíme mať nejakú databázu s dátami, aby sme ich mohli exportovať. Ak žiadnu z minulých lekcií nemáme, môžeme si databázu aj tabuľku Uzivatele vytvoriť podľa tejto lekcie. Ak nemáme žiadne záznamy v tabuľke Uzivatele, môžeme si znovu pár záznamov do tabuľky Uzivatele vložiť týmto T-SQL príkazom:

INSERT INTO [Uzivatele] (
    [Jmeno],
    [Prijmeni],
    [DatumNarozeni],
    [PocetClanku])
VALUES ('Jan', 'Novák', '1984-11-03', 17),
       ('Tomáš', 'Marný', '1989-02-01', 6),
       ('Josef', 'Nový', '1972-12-20', 9);

Máme v databáze teda minimálne tri záznamy osôb:

Tabuľka s dátami - MS-SQL databázy krok za krokom

Export dát

Skúsme si najprv exportovať dáta konkrétnej tabuľky. Najjednoduchšie to môžeme urobiť tak, že si otvoríme dáta tabuľky pomocou možnosti Show Table Data a potom klikneme buď na tlačidlo Script v hornej lište, alebo pravým tlačidlom myši do tabuľky a zvolíme Script:

Script - MS-SQL databázy krok za krokom

Po kliknutí na tlačidlo Script sa nám vygeneruje tento T-SQL script v novom okne:

SET IDENTITY_INSERT [dbo].[Uzivatele] ON
INSERT INTO [dbo].[Uzivatele] ([Id], [Jmeno], [Prijmeni], [DatumNarozeni], [PocetClanku]) VALUES (1, N'Jan', N'Novák', N'1984-11-03', 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)
SET IDENTITY_INSERT [dbo].[Uzivatele] OFF

Script najprv nastaví, aby bolo možné pri vkladaní záznamov určiť hodnotu stĺpca Id, ktorý má nastavenú Identity specification. Potom už nasledujú príkazy pre vloženie všetkých záznamov. V prípade, že niektoré záznamy kopírovať nechceme, tak ich príkazy môžeme zmazať.

Uloženie scriptu do súboru

Tento script si môžeme uložiť do súboru jednoducho kliknutím na tlačidlo pre uloženie súboru v hornom paneli, alebo klávesovou skratkou CTRL + S. Prípadne ho možno uložiť rovno pri vytváraní scriptu, kedy nekliknete na Script, ale na Script to File:

Script to File - MS-SQL databázy krok za krokom

Script si uložíme niekam do súboru, pretože ho budeme využívať pre budúce import.:)

Export celej tabuľky

Ak chceme exportovať celú tabuľku, tzn. ako dáta, tak i štruktúru tabuľky, tak je postup trochu zložitejšie. Najprv si databázu otvoríme v okne SQL Server Object Explorer. V okne Server Explorer na databázu klikneme pravým a zvolíme Browse in SQL Server Object Explorer:

Browse in SQL Server Object Explorer - MS-SQL databázy krok za krokom

SQL Server Object Explorer je nástroj, ktorý rovnako ako Server Explorer umožňuje prácu s SQL databázami vo VS. Na rozdiel od neho však obsahuje nejaké funkcie navyše. Ak vám tieto funkcie nechýba, tak je jedno, ktorý z týchto nástrojov používate.

Tu keď klikneme na tabuľku pravým tlačidlom a zvolíme Script As, tak sa nám ponúknu tri možnosti:

  • CREATE To - vygeneruje T-SQL script na vytvorenie tabuľky
  • DROP To - vygeneruje T-SQL script na zmazanie tabuľky
  • DROP And CREATE To - vygeneruje T-SQL script na zmazanie a následné znovuvytvorenie tabuľky

Všetky tieto možnosti ďalej potom ponúka:

  • New Query Window - otvorí vygenerovaný script v novom okne
  • Clipboard - vloží vygenerovaný script do schránky
  • File - uloží vygenerovaný script do súboru

My zvolíme DROP And CREATE To a následne New Query Window:

DROP AND CREATE To - MS-SQL databázy krok za krokom

Budeme mať takýto T-SQL script:

USE [DatabazeProWeb.MDF]
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
);

Tento script využijeme v situácii, keď chceme exportovať iba štruktúru tabuľky. Keďže my však chceme exportovať súčasne aj dáta, tak si ich import musíme doň vložiť. Vrátime sa ku scriptu z predchádzajúcej ukážky, celý ho skopírujeme (CTRL + C) a vložíme na koniec nového scriptu (CTRL + V):

USE [DatabazeProWeb.MDF]
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-11-03', 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)
SET IDENTITY_INSERT [dbo].[Uzivatele] OFF

Script teda definuje v akej databáze sa má tabuľka vytvoriť (predvolená je zdrojová databáza, pri importe ju prípadne musíme zmeniť), zmazanie rovnomennej tabuľky (ak existuje), vytvorenie novej tabuľky a vloženie dát.

Script si opäť uložíme niekam do súboru pre budúce import, napr. Pomocou CTRL + S.

Export celej databázy

Visual Studio umožňuje exportovať celú databázu ako tzv. Data-tier application (DAC), ktorá sa prenáša v rámci balíka DACPAC (súbor s príponou .dacpac). V podstate je to formát pre prenos celých MS-SQL databáz vrátane štruktúr všetkých tabuliek a dát v nich obsiahnutých. DAC sa okrem zálohy dá taktiež použiť pre nasadenie databázy na vzdialený server alebo do Azure.

Balíček DACPAC vyexportuje tak, že klikneme na databázu pravým tlačidlom v SQL Server Object Explorer a zvolíme Extract Data-tier Application ...:

Extract Data-tier Application … - MS-SQL databázy krok za krokom

Otvorí sa nám tento dialóg:

Extract Data-tier Application dialóg - MS-SQL databázy krok za krokom

V tomto dialógu najprv zvolíme umiestnenie a názov súboru, najjednoduchšie kliknutím na Browse .... Ďalej si môžeme zvoliť, či chceme vyexportovať iba štruktúru celej databázy (Extract schema only), alebo či chceme vyexportovať aj dáta (Extract schema and data). V prípade druhej možnosti si môžeme vybrať konkrétne tabuľky:

Extract Data dialóg - MS-SQL databázy krok za krokom

Export potvrdíme tlačidlom OK. Úspešnosť exportu sa vypíše v okne Data Tools Operations:

Data Tools Operations - MS-SQL databázy krok za krokom

V budúcej lekcii, MS-SQL krok za krokom: Radenie, Limit a agregačné funkcie , sa pozrieme na radenie a agregačné funkcie.


 

Predchádzajúci článok
MS-SQL krok za krokom: Vkladanie a mazanie dát v tabuľke
Všetky články v sekcii
MS-SQL databázy krok za krokom
Preskočiť článok
(neodporúčame)
MS-SQL krok za krokom: Radenie, Limit a agregačné funkcie
Článok pre vás napísal Radek Vymětalík
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
...
Aktivity