5. diel - MS-SQL krok za krokom: Import
V minulej lekcii, MS-SQL krok za krokom: Export, sme si ukázali rôzne typy exportov databázy.
Dnes si v MS-SQL tutoriáli vytvorenú zálohu (export) databázy a tabuľky z tejto lekcie skúsime naimportovať, 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 ich už nemáte.
Import celej databázy
Na import 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 priečinok 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 najskôr 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áza objaví 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
Users
, tak si ich teraz skúsime naimportovať. Najskôr však
všetky dáta z tejto tabuľky zmažeme. Zobrazíme si ich 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áze zavolať tento T-SQL script:
DELETE FROM [Users];
Teraz v tabuľke nemáme žiadne dáta. Import dát do tabuľky vykonáme spustením nášho T-SQL scriptu na konkrétnu databázu. Pre istotu ho tu uvediem:
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
Keby sme dáta importovali do inak pomenovanej tabuľky, tak
samozrejme musíme všade v skripte prepísať názov tabuľky
Users
.
Spustenie scriptu
V prípade, že sme si ho uložili do súboru, máme dve možnosti, ako ho spustiť.
Prvou možnosťou je daný súbor so 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 vybraniu. 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 predvolenej 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 novo vytvorený 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 [WebDatabaseCopy] GO /****** Object: Table [dbo].[Users] Script Date: 04.07.2024 13:31:41 ******/ 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
Pokiaľ 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 urobil, 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írujeme 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 problémov.
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é 24x (4.03 kB)