5. diel - MS-SQL krok za krokom: Import
V minulej lekcii, MS-SQL krok za krokom: Vývoz , sme si ukázali rôzne typy exportov databázy.
Dnes si v MS-SQL tutoriálu vytvorené zálohy (export) databázy a tabuľky z tejto lekcie skúsime importovať, tzn. nahrať na server alebo databázu.
Všetky T-SQL scripty a súbory, ktoré dnes budeme používať, si môžete stiahnuť na konci tejto lekcie, ak je už nemáte.
Import celej databázy
K importu celej databázy využijeme náš DACPAC súbor,
ktorý máme vygenerovaný, alebo ho nájdeme priložený na konci tejto lekcie.
Skúsime si ho naimportovať na náš lokálny server. V SQL Server
Object Explorer klikneme pravým tlačidlom na zložku
Databases/
nášho konkrétneho servera, pre nás je to
(LocalDB)\MSSQLLocalDB
, a zvolíme Publish Data-tier
Application ...:
Otvorí sa nám tento dialóg:
V tomto dialógu najprv zvolíme náš .dacpac
súbor,
najjednoduchšie kliknutím na Browse .... Ďalej zvolíme
názov novej databázy a potvrdíme tlačidlom Publish.
Úspešnosť importu sa vypíše v okne Data Tools
Operations:
V okne SQL Server Object Explorer sa nám databázy objavia až po jeho obnovení, ktoré vykonáme kliknutím na tlačidlo Refresh v ľavom hornom rohu:
Ako môžete vidieť, tak kópia databázy je nahraná.
Import dát
Keďže máme vygenerovaný T-SQL script s dátami tabuľky
Uzivatele
, tak si ich teraz skúsime naimportovať. Najskôr však
všetky dáta z tejto tabuľky zmažeme. Zobrazíme si je pomocou Show
Table Data, vyberieme všetky záznamy a stlačíme DEL,
alebo pravé tlačidlo a Delete:
Alebo taktiež môžeme na databázu zavolať tento T-SQL script:
DELETE FROM [Uzivatele];
Teraz v tabuľke nemáme žiadne dáta. Import dát do tabuľky prevedieme spustením nášho T-SQL scriptu na konkrétne databázu. Pre istotu ho tu uvediem:
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
Keby sme dáta importovali do inak pomenované tabuľky, tak
samozrejme musíme všade vo scriptu prepísať názov tabuľky
Uzivatele
.
Spustenie scriptu
V prípade, že sme si ho uložili do súboru, tak máme dve možnosti, ako ho spustiť.
Prvou možnosťou je daný súbor sa scriptom pretiahnuť do hlavného okna
Visual Studia, čím ho v ňom otvoríme. Tento script však nebude naviazaný
na našu databázu, a tak pri jeho spustení budeme vyzvaní k jej vybrania. My
používame lokálnu databázu na lokálnom serveri, preto zvolíme
MSSQLLocalDB
a v kolónke Database Name našu
databázu, autentifikáciu necháme na predvolené
Windows Authentication
:
Po potvrdení tlačidlom Connect sa script vykoná a vypíše sa správa:
Druhú možnosť už vlastne poznáme. Klikneme pravým tlačidlom na požadovanú databázu v okne Server Explorer alebo SQL Server Object Explorer, zvolíme New Query a do nového scriptu skopírujeme obsah nášho uloženého scriptu, ktorý si môžeme otvoriť v nejakom textovom editore. Nakoniec novovytvorený script spustíme. Tento prístup je vhodnejší v situácii, keď si konkrétny T-SQL script neukladáme do súboru.
Import celej tabuľky
Pre import celej tabuľky aj s jej dátami by sme mali mať vygenerovaný tento T-SQL script, alebo ho tiež nájdeme v priloženom súbore na konci tejto lekcie:
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
Ak tabuľku importujete do inej databázy, tak je potrebné
zmeniť jej názov za príkazom USE
.
Nech vidíme, že sa script naozaj vykonal, tak si tabuľku zmažeme. V SQL Server Object Explorer na ňu klikneme pravým tlačidlom a zvolíme Delete. Na pozadí sa vygeneruje script pre jej zmazanie a my ho len potvrdíme tlačidlom Update Database:
Náš T-SQL script opäť otvoríme jeho pretiahnutím do okna Visual Studia, alebo ho z tejto lekcie prekopíruje do okna New Query, spustíme a previažeme s našou databázou. Vypíše sa nám, že tabuľka nemohla byť zmazaná, pretože neexistuje, ale to nevadí, zvyšok scriptu by sa mal vykonať bez ťažkostí.
Týmto sme ukončili tému exportu a importu databázy vo Visual Studiu:) Pre
pokročilejšie možnosti exportu a importu je potrebné použiť nástroj SQL
Server Management Studio. To umožňuje napr. Aj export a import do / z
rôznych typov súborov,. csv
, .xlsx
atď.
V nasledujúcom kvíze, Kvíz - Tvorba, vkladanie, import a export dát v MS-SQL, si vyskúšame nadobudnuté skúsenosti z predchádzajúcich lekcií.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkamiStiahnuté 476x (3.6 kB)