Lekce 5 - MS-SQL krok za krokem: Import
V minulé lekci, MS-SQL krok za krokem: Export, jsme si ukázali různé typy exportů databáze.
Dnes si v MS-SQL tutoriálu vytvořenou zálohu (export) databáze a tabulky z této lekce zkusíme naimportovat, tzn. nahrát na server nebo databázi.
Všechny T-SQL scripty a soubory, které dnes budeme používat, si můžete stáhnout na konci této lekce, jestliže je již nemáte.
Import celé databáze
K importu celé databáze využijeme náš DACPAC soubor,
který máme vygenerovaný, nebo ho najdeme přiložený na konci této lekce.
Zkusíme si ho naimportovat na náš lokální server. V SQL Server
Object Explorer klikneme pravým tlačítkem na složku
Databases/
našeho konkrétního serveru, pro nás je to
(LocalDB)\MSSQLLocalDB
, a zvolíme Publish Data-tier
Application...:
Otevře se nám tento dialog:
V tomto dialogu nejprve zvolíme náš .dacpac
soubor,
nejjednodušeji kliknutím na Browse.... Dále zvolíme název
nové databáze a potvrdíme tlačítkem Publish. Úspěšnost
importu se vypíše v okně Data Tools Operations:
V okně SQL Server Object Explorer se nám databáze objeví až po jeho obnovení, které provedeme kliknutím na tlačítko Refresh v levém horním rohu:
Jak můžete vidět, tak kopie databáze je nahraná.
Import dat
Jelikož máme vygenerovaný T-SQL script s daty tabulky
Uzivatele
, tak si je nyní zkusíme naimportovat. Nejdříve však
všechna data z této tabulky smažeme. Zobrazíme si je pomocí Show
Table Data, vybereme všechny záznamy a stiskneme DEL, nebo
pravé tlačítko a Delete:
Nebo taktéž můžeme na databázi zavolat tento T-SQL script:
DELETE FROM [Uzivatele];
Nyní v tabulce nemáme žádná data. Import dat do tabulky provedeme spuštěním našeho T-SQL scriptu na konkrétní databázi. Pro jistotu ho zde uvedu:
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
Kdybychom data importovali do jinak pojmenované tabulky, tak
samozřejmě musíme všude ve scriptu přepsat název tabulky
Uzivatele
.
Spuštění scriptu
V případě, že jsme si jej uložili do souboru, tak máme dvě možnosti, jak ho spustit.
První možností je daný soubor se scriptem přetáhnout do hlavního okna
Visual Studia, čímž ho v něm otevřeme. Tento script však nebude navázaný
na naši databázi, a tak při jeho spuštění budeme vyzváni k jejímu
vybrání. My používáme lokální databázi na lokálním serveru, proto
zvolíme MSSQLLocalDB
a v kolonce Database Name
naši databázi, autentifikaci necháme na výchozí
Windows Authentication
:
Po potvrzení tlačítkem Connect se script vykoná a vypíše se zpráva:
Druhou možnost již vlastně známe. Klikneme pravým tlačítkem na požadovanou databázi v okně Server Explorer nebo SQL Server Object Explorer, zvolíme New Query a do nového scriptu zkopírujeme obsah našeho uloženého scriptu, který si můžeme otevřít v nějakém textovém editoru. Nakonec nově vytvořený script spustíme. Tento přístup je vhodnější v situaci, kdy si konkrétní T-SQL script neukládáme do souboru.
Import celé tabulky
Pro import celé tabulky i s jejími daty bychom měli mít vygenerovaný tento T-SQL script, nebo ho také najdeme v přiloženém souboru na konci této lekce:
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
Pokud tabulku importujete do jiné databáze, tak je potřeba
změnit její název za příkazem USE
.
Ať vidíme, že se script opravdu provedl, tak si tabulku smažeme. V SQL Server Object Explorer na ni klikneme pravým tlačítkem a zvolíme Delete. Na pozadí se vygeneruje script pro její smazání a my ho jen potvrdíme tlačítkem Update Database:
Náš T-SQL script opět otevřeme jeho přetažením do okna Visual Studia, nebo ho z této lekce překopírujeme do okna New Query, spustíme a provážeme s naší databází. Vypíše se nám, že tabulka nemohla být smazána, jelikož neexistuje, ale to nevadí, zbytek scriptu by se měl provést bez potíží.
Tímto jsme ukončili téma exportu a importu databáze ve Visual Studiu Pro pokročilejší možnosti
exportu a importu je třeba použít nástroj SQL
Server Management Studio. To umožňuje např. i export a import do/z
různých typů souborů, .csv
, .xlsx
atd.
V následujícím kvízu, Kvíz - Tvorba, vkládání, import a export dat v MS-SQL, si vyzkoušíme nabyté zkušenosti z předchozích lekcí.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkamiStaženo 888x (3.6 kB)