Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.
IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

4. diel - MS-SQL krok za krokom: Export

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

V tomto MS-SQL tutoriáli si ukážeme, ako exportovať dáta našej databázy a získať tak jej zálohu. Vytvorenie zálohy sa nám bude určite mnohokrát hodiť či už na prípadné obnovenie našich dát, alebo ich zdieľanie s ostatnými.

Typy exportov

Export (alebo aj „záloha“) je súbor s SQL príkazmi, ktorý nám môže slúžiť na zálohu či migráciu databázy alebo iba jej časti. Máme niekoľko typov exportu:

  • Kompletný export – Súbor bude obsahovať štruktúru tabuliek aj ich dáta.
  • Export štruktúry – Súbor bude obsahovať iba štruktúru databázy. Takýto export môže obsahovať všetky alebo iba vybrané tabuľky.
  • Export dát – Súbor bude obsahovať iba dáta tabuliek. Tabuľky môžeme špecifikovať.

Príprava databázy

Skôr než začneme, musíme mať najprv k dispozícii nejakú databázu s dátami. Použijeme našu databázu s tabuľkou Pouzivatelia, ktorú sme si tvorili v minulých lekciách. Tabuľku najprv celú vyprázdnime. Otvoríme si teda okno na vykonanie T-SQL skriptu (v okne SQL Server Object Explorer klikneme na databázu databazaPreWeb pravým tlačidlom a vyberieme New Query...) a zavoláme na tabuľke Pouzivatelia príkaz TRUNCATE TABLE:

TRUNCATE TABLE [Pouzivatelia];

Tabuľku Pouzivatelia následne znovu naplníme, aby sme v nej mali všetci zhodné dáta:

INSERT INTO [Pouzivatelia] (
    [Meno],
    [Priezvisko],
    [DatumNarodenia],
    [PocetClankov]
)
VALUES
    ('Ján', 'Kováč', '1984-03-11', 17),
    ('Tomáš', 'Horváth', '1989-02-01', 6),
    ('Jozef', 'Tóth', '1972-12-20', 9),
    ('Michaela', 'Sláviková', '1990-08-14', 1);

V databáze teraz teda máme štyri záznamy používateľov:

Naplnená tabuľka - MS-SQL databázy krok za krokom

Export dát

Skúsme si najprv exportovať dáta konkrétnej tabuľky, v našom prípade tabuľky Pouzivatelia. Najjednoduchšie to môžeme urobiť tak, že si cez okno SQL Server Object Explorer otvoríme dáta tabuľky pomocou možnosti View Data:

View Data - MS-SQL databázy krok za krokom

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

V novom okne sa nám vygeneruje tento T-SQL skript:

SET IDENTITY_INSERT [dbo].[Pouzivatelia] ON
INSERT INTO [dbo].[Pouzivatelia] ([Id], [Meno], [Priezvisko], [DatumNarodenia], [PocetClankov]) VALUES (1, N'Ján', N'Kovác', N'1984-03-11', 17)
INSERT INTO [dbo].[Pouzivatelia] ([Id], [Meno], [Priezvisko], [DatumNarodenia], [PocetClankov]) VALUES (2, N'Tomáš', N'Horváth', N'1989-02-01', 6)
INSERT INTO [dbo].[Pouzivatelia] ([Id], [Meno], [Priezvisko], [DatumNarodenia], [PocetClankov]) VALUES (3, N'Jozef', N'Tóth', N'1972-12-20', 9)
INSERT INTO [dbo].[Pouzivatelia] ([Id], [Meno], [Priezvisko], [DatumNarodenia], [PocetClankov]) VALUES (4, N'Michaela', N'Sláviková', N'1990-08-14', 1)
SET IDENTITY_INSERT [dbo].[Pouzivatelia] OFF

Skript najprv nastaví, aby bolo možné pri vkladaní záznamov pomocou príkazu INSERT nastaviť konkrétnu hodnotu stĺpca Id. Ten má totiž nastavenú Identity Specification a priraďovanie hodnôt daného stĺpca je tak v predvolenom nastavení v réžii databázy.

Potom už nasledujú príkazy na vloženie všetkých záznamov. V prípade, že niektoré záznamy kopírovať nechceme, ich príkazy môžeme zmazať.

Skript je zakončený obnovením predvoleného správania Identity Specification.

Uloženie skriptu do súboru

Skript si uložíme niekam do súboru, pretože ho budeme využívať na budúci import :) Urobíme to jednoducho kliknutím na tlačidlo na uloženie súboru v hornom paneli alebo klávesovou skratkou CTRL + S:

Uloženie SQL súboru - MS-SQL databázy krok za krokom

Prípadne ho možno uložiť rovno pri vytváraní skriptu, keď neklikneme na Script, ale na Script to File....

Export celej tabuľky

Ak chceme exportovať celú tabuľku, tzn. dáta aj štruktúru tabuľky, potom je postup trochu zložitejší. Presunieme sa do okna SQL Server Object Explorer. Tu klikneme na tabuľku Pouzivatelia pravým tlačidlom myši a zvolíme možnosť Script As. Ponúknu sa nám tri možnosti:

  • CREATE To – Vygeneruje T-SQL skript na vytvorenie tabuľky.
  • DROP To – Vygeneruje T-SQL skript na zmazanie tabuľky.
  • DROP And CREATE To – Vygeneruje T-SQL skript na zmazanie a následné znovuvytvorenie tabuľky.

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

  • New Query Window – Otvorí vygenerovaný skript v novom okne.
  • Clipboard – Vloží vygenerovaný skript do schránky.
  • File – Uloží vygenerovaný skript 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

Otvorí sa nám okno s nasledujúcim T-SQL skriptom:

USE [databazaPreWeb]
GO

/****** Object: Table [dbo].[Pouzivatelia] Script Date: 6/11/2026 3:57:04 PM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

DROP TABLE [dbo].[Pouzivatelia];


GO
CREATE TABLE [dbo].[Pouzivatelia] (
    [Id]             INT           IDENTITY (1, 1) NOT NULL,
    [Meno]           NVARCHAR (60) NOT NULL,
    [Priezvisko]     NVARCHAR (60) NOT NULL,
    [DatumNarodenia] DATE          NOT NULL,
    [PocetClankov]   INT           NOT NULL
);

Skript začína príkazom USE, ktorý určuje, na akej databáze sa majú nasledujúce príkazy vykonať. Predvolená je zdrojová databáza, pri importe ju prípadne musíme zmeniť. Príkazy SET pre nás nie sú až také zaujímavé – ide iba o nastavenie správania databázy, ktoré je vyžadované na správne vykonanie ďalších príkazov.

Kľúčové sú tu nám už známe príkazy DROP TABLE a CREATE TABLE, ktoré zaistia zmazanie a následné znovuvytvorenie tabuľky.

Príkaz GO iba oddeľuje príkazy skriptu do jednotlivých skupín. Toto delenie využívajú predovšetkým nástroje spracúvajúce daný skript, aby ho mohli správne vykonať.

Export štruktúry aj s dátami

Skript vyššie využijeme v situácii, keď chceme exportovať iba štruktúru tabuľky. My však chceme spolu so štruktúrou exportovať aj dáta danej tabuľky. Visual Studio však neumožňuje takýto skript automaticky vygenerovať. To pre nás ale nie je zásadný problém, takýto skript si môžeme vytvoriť sami. Jednoducho spojíme oba skripty, ktoré sme si už vygenerovali.

Vrátime sa k skriptu na export dát, celý ho skopírujeme (CTRL + C) a vložíme (CTRL + V) na koniec skriptu na export štruktúry. Dostaneme tak nasledujúci skript:

USE [databazaPreWeb]
GO

/****** Object: Table [dbo].[Pouzivatelia] Script Date: 6/11/2026 3:57:04 PM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

DROP TABLE [dbo].[Pouzivatelia];


GO
CREATE TABLE [dbo].[Pouzivatelia] (
    [Id]             INT           IDENTITY (1, 1) NOT NULL,
    [Meno]           NVARCHAR (60) NOT NULL,
    [Priezvisko]     NVARCHAR (60) NOT NULL,
    [DatumNarodenia] DATE          NOT NULL,
    [PocetClankov]   INT           NOT NULL
);


SET IDENTITY_INSERT [dbo].[Pouzivatelia] ON
INSERT INTO [dbo].[Pouzivatelia] ([Id], [Meno], [Priezvisko], [DatumNarodenia], [PocetClankov]) VALUES (1, N'Ján', N'Kovác', N'1984-03-11', 17)
INSERT INTO [dbo].[Pouzivatelia] ([Id], [Meno], [Priezvisko], [DatumNarodenia], [PocetClankov]) VALUES (2, N'Tomáš', N'Horváth', N'1989-02-01', 6)
INSERT INTO [dbo].[Pouzivatelia] ([Id], [Meno], [Priezvisko], [DatumNarodenia], [PocetClankov]) VALUES (3, N'Jozef', N'Tóth', N'1972-12-20', 9)
INSERT INTO [dbo].[Pouzivatelia] ([Id], [Meno], [Priezvisko], [DatumNarodenia], [PocetClankov]) VALUES (4, N'Michaela', N'Sláviková', N'1990-08-14', 1)
SET IDENTITY_INSERT [dbo].[Pouzivatelia] OFF

Tento skript teda zaistí zmazanie tabuľky Pouzivatelia, vytvorenie novej tabuľky Pouzivatelia a nakoniec vloženie dát.

Skript si opäť uložíme niekam do súboru na budúci import, napríklad 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 ide o formát na 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ť na nasadenie databázy na cloud, napríklad na Azure.

Balíček DACPAC vyexportujeme tak, že klikneme na databázu pravým tlačidlom myši 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 dialóg, kde zvolíme umiestnenie a názov súboru, najjednoduchšie kliknutím na Browse...:

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

Ďalej si môžeme zvoliť, či chceme vyexportovať iba štruktúru celej databázy (Extract schema only), alebo aj dáta (Extract schema and data). V prípade druhej možnosti si môžeme vybrať konkrétne tabuľky pomocou tlačidla Select Tables...:

Extract Data dialog - MS-SQL databázy krok za krokom

Vyberme teda umiestnenie exportovaného súboru, možnosť Extract schema and data so všetkými tabuľkami a tlačidlom OK celý export potvrďme. Úspešnosť exportu sa vypíše v okne Data Tools Operations:

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

Tým máme k dispozícii export celej našej databázy.

V nasledujúcej lekcii, MS-SQL krok za krokom: Import, si ukážeme import databázy.


 

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: Import
Článok pre vás napísal Radek Vymětalík
Avatar
Užívateľské hodnotenie:
27 hlasov
...
Aktivity