Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
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í.

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

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 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 len jej časti.

Export môžeme rozdeliť na:

  • kompletný export - súbor bude obsahovať ako štruktúru tabuliek, tak 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ť.

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

INSERT INTO [Users] (
    [FirstName],
    [LastName],
    [BirthDate],
    [NumberOfArticles])
VALUES ('John', 'Smith', '1984-11-03', 17),
       ('Thomas', 'Williams', '1989-02-01', 6),
       ('Joseph', 'Miller', '1972-12-20', 9);

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

Tabuľka s údajmi - MS-SQL databázy krok za krokom

Export dát

Skúsme si najskôr 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].[Users] ON
INSERT INTO [dbo].[Users] ([Id], [FirstName], [LastName], [BirthDate], [NumberOfArticles]) VALUES (1, N'John', N'Smith', N'1984-11-03', 17)
INSERT INTO [dbo].[Users] ([Id], [FirstName], [LastName], [BirthDate], [NumberOfArticles]) VALUES (2, N'Thomas', N'Williams', N'1989-02-01', 6)
INSERT INTO [dbo].[Users] ([Id], [FirstName], [LastName], [BirthDate], [NumberOfArticles]) VALUES (3, N'Joseph', N'Miller', N'1972-12-20', 9)
SET IDENTITY_INSERT [dbo].[Users] 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 na 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 na 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 neklikneme 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ť na budúci import :)

Export celej tabuľky

Pokiaľ chceme exportovať celú tabuľku, tzn. ako dáta, tak aj štruktúru tabuľky, tak je postup trochu zložitejší. 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. Pokiaľ vám tieto funkcie nechýbajú, 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 [webDatabase.MDF]
GO

/****** Object: Table [dbo].[Users] Script Date: 03.07.2024 13:45:03 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

DROP TABLE [dbo].[Users];


GO
CREATE TABLE [dbo].[Users] (
    [Id]               INT           IDENTITY (1, 1) NOT NULL,
    [FirstName]        NVARCHAR (60) NULL,
    [LastName]         NVARCHAR (60) NULL,
    [BirthDate]        DATE          NULL,
    [NumberOfArticles] INT           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 neho vložiť. Vrátime sa k scriptu z predchádzajúcej ukážky, celý ho skopírujeme (CTRL + C) a vložíme na koniec nového scriptu (CTRL + V):

USE [WEBDATABASE.MDF]
GO

/****** Object: Table [dbo].[Users] Script Date: 03.07.2024 13:45:03 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

DROP TABLE [dbo].[Users];


GO
CREATE TABLE [dbo].[Users] (
    [Id]               INT           IDENTITY (1, 1) NOT NULL,
    [FirstName]        NVARCHAR (60) NULL,
    [LastName]         NVARCHAR (60) NULL,
    [BirthDate]        DATE          NULL,
    [NumberOfArticles] INT           NULL
);


SET IDENTITY_INSERT [dbo].[Users] ON
INSERT INTO [dbo].[Users] ([Id], [FirstName], [LastName], [BirthDate], [NumberOfArticles]) VALUES (1, N'John', N'Smith', N'1984-11-03', 17)
INSERT INTO [dbo].[Users] ([Id], [FirstName], [LastName], [BirthDate], [NumberOfArticles]) VALUES (2, N'Thomas', N'Williams', N'1989-02-01', 6)
INSERT INTO [dbo].[Users] ([Id], [FirstName], [LastName], [BirthDate], [NumberOfArticles]) VALUES (3, N'Joseph', N'Miller', N'1972-12-20', 9)
SET IDENTITY_INSERT [dbo].[Users] 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úci 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 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 vzdialený server alebo do Azure.

Balíček DACPAC vyexportujeme 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 ďalšej 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:
1 hlasov
...
Aktivity