SQL - jak uložit databázi

Všechny ostatní programy, které nemají samostatnou sekci

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Alesh2020 15. 1. 2022 11:20

Zdravím, podle studijního materiálu by se mi měla ta tabulka zobrazit, ale nezobrazuje se mi.

Jak z toho ven? https://postimg.cc/sMWkHX61
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 15. 1. 2022 11:23

Tak evidentně jsi ty tabulky zatím nevytvořil.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 15. 1. 2022 11:58

https://postimg.cc/m1WQdw86

Nakonec stačilo dát reflesh.

https://postimg.cc/MfM5nHX1

Hmm, a když sem si svoji databázi uložil jako .dacpac, a pak ji naimportoval, jak zobrazím její obsah?

PS: https://postimg.cc/cgKknXbK a kam mám nandat ten příkaz DELETE FROM [Uzivatele]; ?

Když odmažu tohle, a tam nakopíruji ten příkaz, tak mi to jen vyhodí fail. :hm
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Alesh2020 15. 1. 2022 12:49

Kód: Vybrat vše
SET IDENTITY_INSERT [dbo].[Uzivatele] ON
INSERT INTO [dbo].[Uzivatele] ([Id], [Jmeno], [Prijmeni], [DatumNarozeni], [PocetClanku]) VALUES (1, N'1Jan', N'Novák', N'1984-11-03', 17)
INSERT INTO [dbo].[Uzivatele] ([Id], [Jmeno], [Prijmeni], [DatumNarozeni], [PocetClanku]) VALUES (2, N'1Tomáš', N'Marný', N'1989-02-01', 6)
INSERT INTO [dbo].[Uzivatele] ([Id], [Jmeno], [Prijmeni], [DatumNarozeni], [PocetClanku]) VALUES (3, N'1Josef', N'Nový', N'1972-12-20', 9)
SET IDENTITY_INSERT [dbo].[Uzivatele] OFF


Tento script by mi měl do mé databáze přidat ta tři jména, ale namísto toho mi to hodí tento fail:


(1 row(s) affected)

Msg 2627, Level 14, State 1, Line 2
Violation of PRIMARY KEY constraint 'PK__Uzivatel__3214EC07D1ADF1D2'. Cannot insert duplicate key in object 'dbo.Uzivatele'. The duplicate key value is (1).
Msg 2627, Level 14, State 1, Line 3
Violation of PRIMARY KEY constraint 'PK__Uzivatel__3214EC07D1ADF1D2'. Cannot insert duplicate key in object 'dbo.Uzivatele'. The duplicate key value is (2).
The statement has been terminated.
The statement has been terminated.


Kde je problém?
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 15. 1. 2022 12:51

Problém je v tom, že uživatelé s danými ID už v databázi jsou.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 15. 1. 2022 12:59

A to nejde přepsat dané ID / aby se ty položky v databázi posunuly? Ze třetí by byla šestá apod.
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 15. 1. 2022 13:05

A proč prostě nepřepíšeš ty ID v tom skriptu? A proč tam vůbec máš "SET IDENTITY_INSERT"?
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 15. 1. 2022 13:23

Bylo to tak v zadání...

-- 15. 1. 2022 13:40 --

Jaký SQL příkazy jsou vlastně nejpoužívanější?
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 15. 1. 2022 13:53

select, insert, update, delete
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 15. 1. 2022 13:54

A PS, jakej je rozdíl mezi těmahle dvěma věcma?

Kód: Vybrat vše
SELECT [Jmeno], COUNT(*) FROM [Uzivatele] GROUP BY [Jmeno];


Kód: Vybrat vše
SELECT [Jmeno], COUNT(*) AS [Pocet] FROM [Uzivatele] GROUP BY [Jmeno];
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 15. 1. 2022 13:57

To snad vidíš, ne?
Kód: Vybrat vše
AS [Pocet]
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 15. 1. 2022 15:14

No to vidím, ale co to zmamená?
A jakej je rozdíl mezi
NVARCHAR (max. počet znaků) počet znaků jaký si zvolíte
NCHAR (počet znaků) pevný počet znaků jaký si zvolíte

resp. co je "pevný počet znaků", když stejně musím vždy ten počet znaků deklarovat, např. NVARCHAR (60) mi dá hodnotu s max. šedesáti znaky.
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 15. 1. 2022 15:25

Tak si ty příkazy spusť a podívej se na názvy sloupců výsledku.

NVARCHAR zabírá tolik místa, kolik potřebuje skutečný text v něm uložený. NCHAR zabírá pevně stanovené místo, i když je v něm uložený text kratší. Ale zato jeho použití může znamenat vyšší výkon.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 15. 1. 2022 15:26

PS: https://postimg.cc/7CppjWtw

Msg 515, Level 16, State 2, Line 1
Cannot insert the value NULL into column 'PocetClanku', table 'C:\USERS\STIGLITZ\SOURCE\REPOS\CONSOLEAPP14\CONSOLEAPP14\DATABASE1.MDF.dbo.Uzivatele'; column does not allow nulls. INSERT fails.
The statement has been terminated.


Proč mi to tady neustále píše, že nemůže nacpat NULL hodnoty do databáze, ikdyž jsem to v tom nastavení povolil , a dal jsem Update, takže by se změna měla projevit... ? :hm
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 15. 1. 2022 15:28

Povolil jsi to u Jmena, ale vy chybové hlášce máš sloupec PocetClanku.
Wikan
Moderátor
Uživatelský avatar

Další stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků