sql >> Databáze >  >> RDS >> Sqlserver

11 způsobů, jak získat primární klíč v SQL Server (příklady T-SQL)

Často existuje mnoho způsobů, jak udělat stejnou (nebo podobnou) věc v SQL Serveru. Příkladem je získání všech primárních klíčů z databáze (nebo dokonce pouze primárního klíče pro danou tabulku).

Tento článek představuje jedenáct různých přístupů k načítání informací o primárním klíči v SQL Server.

Některé z nich budou užitečnější než jiné, v závislosti na vaší přesné situaci.

Příklad 1 – Uložená procedura systému sp_pkeys

Pokud chcete pouze primární klíč pro danou tabulku, sp_pkeys uložená procedura systému je pravděpodobně nejrychlejší a nejjednodušší způsob, jak to udělat. Chcete-li to provést, jednoduše předejte název tabulky proceduře.

Takhle:

EXEC sp_pkeys Artists;

Výsledek (při použití vertikálního výstupu):

TABLE_QUALIFIER | MusicTABLE_OWNER | dboTABLE_NAME | UmělciCOLUMN_NAME | ArtistIdKEY_SEQ | 1PK_NAME | PK__Artists__25706B50FCD918B1

V tomto případě jsem si vyžádal primární klíč od Artists stůl. Vrátí název primárního klíče ( PK__Artists__25706B50FCD918B1 ), název databáze ( Hudba ), název tabulky, název sloupce ( ArtistId ), plus další informace.

Případně jsem mohl explicitně zadat všechny argumenty, abych získal stejný výsledek:

EXEC sp_pkeys @table_name =Interpreti, @table_owner =dbo, @table_qualifier =Hudba;

Příklad 2 – Systémové zobrazení KEY_COLUMN_USAGE

INFORMATION_SCHEMA.KEY_COLUMN_USAGE systémový pohled vrátí jeden řádek pro každý sloupec, který je v aktuální databázi omezen jako klíč. S tímto zobrazením se vám tedy vrátí i cizí klíče.

SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAMEFROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE;

Výsledek:

+--------------+---------------+--------------- -----------------+| TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME ||--------------+---------------+---------------- ----------------|| Alba | ArtistId | FK_Alba_Umělci || Alba | GenreId | FK_Alba_Žánry || Alba | AlbumId | PK__Alba__97B4BE379FC780BD || Umělci | ArtistId | PK__Artists__25706B50FCD918B1 || Žánry | GenreId | PK__Genres__0385057E88BB96F8 |+--------------+----------------+---------------- ---------------+

Vidíme, že to vrací omezení ze všech tabulek. Můžeme také přidat WHERE klauzule k zúžení výsledků na konkrétní tabulku.

SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAMEFROM INFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERE TABLE_NAME ='Artists';

Výsledek:

+--------------+---------------+--------------- -----------------+| TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME ||--------------+---------------+---------------- ----------------|| Umělci | ArtistId | PK__Artists__25706B50FCD918B1 |+--------------+---------------+---------------- ---------------+

V těchto příkladech jsem zúžil výsledky pouze na ty sloupce zobrazení, které mě zajímají, ale můžete také použít hvězdičku (* ) zástupný znak pro návrat všech sloupců.

SELECT *FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERE TABLE_NAME ='Artists';

Výsledek (při použití vertikálního výstupu):

CONSTRAINT_CATALOG | MusicCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | PK__Artists__25706B50FCD918B1TABLE_KATALOG | MusicTABLE_SCHEMA | dboTABLE_NAME | UmělciCOLUMN_NAME | ArtistIdORDINAL_POSITION | 1

Příklad 3 – Systémové zobrazení CONSTRAINT_COLUMN_USAGE

Je to podobné jako v předchozím příkladu. INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE systémový pohled vrátí jeden řádek pro každý sloupec v aktuální databázi, který má pro daný sloupec definováno omezení. Stejně jako u INFORMATION_SCHEMA.KEY_COLUMN_USAGE s tímto zobrazením se vám také vrátí cizí klíče. Nicméně INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE není omezena pouze na klíčová omezení.

VYBERTE TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAMEFROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE;

Výsledek:

+--------------+---------------+--------------- -----------------+| TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME ||--------------+---------------+---------------- ----------------|| Alba | ArtistId | FK_Alba_Umělci || Alba | GenreId | FK_Alba_Žánry || Alba | AlbumId | PK__Alba__97B4BE379FC780BD || Umělci | ArtistId | PK__Artists__25706B50FCD918B1 || Žánry | GenreId | PK__Genres__0385057E88BB96F8 |+--------------+----------------+---------------- ---------------+

Můžete použít WHERE klauzule pro vrácení pouze určité tabulky nebo sloupce:

SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAMEFROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGEWHERE COLUMN_NAME ='ArtistId';

Výsledek:

+--------------+---------------+--------------- -----------------+| TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME ||--------------+---------------+---------------- ----------------|| Alba | ArtistId | FK_Alba_Umělci || Umělci | ArtistId | PK__Artists__25706B50FCD918B1 |+--------------+---------------+---------------- ---------------+

V tomto případě jsem zadal název sloupce, takže vrátil všechna omezení pro sloupce s tímto názvem. Jak se ukázalo, databáze používá stejný název sloupce ve dvou různých tabulkách. Jeden má omezení cizího klíče, druhý primární klíč. Proto jsou vráceny oba řádky.

Opět můžete použít hvězdičku (* ) zástupný znak pro návrat všech sloupců.

SELECT *FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGEWHERE TABLE_NAME ='Artists';

Výsledek (při použití vertikálního výstupu):

TABLE_CATALOG | MusicTABLE_SCHEMA | dboTABLE_NAME | UmělciCOLUMN_NAME | ArtistIdCONSTRAINT_CATALOG | MusicCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | PK__Artists__25706B50FCD918B1

V tomto příkladu jsem omezil výstup pouze na omezení pro konkrétní tabulku.

Příklad 4 – Systémové zobrazení CONSTRAINT_TABLE_USAGE

INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE systémový pohled vrátí jeden řádek pro každou tabulku v aktuální databázi, která má pro tabulku definováno omezení.

VYBERTE TABLE_NAME, CONSTRAINT_NAME Z INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE;

Výsledek:

+--------------+------------------------------- +| TABLE_NAME | CONSTRAINT_NAME ||--------------+-------------------------------| | Umělci | PK__Artists__25706B50FCD918B1 || Žánry | PK__Genres__0385057E88BB96F8 || Alba | PK__Alba__97B4BE379FC780BD || Alba | FK_Alba_Umělci || Alba | FK_Alba_Žánry |+--------------+-------------------------------+ 

Toto zobrazení nevrací názvy sloupců, na které se omezení používají, takže v závislosti na vašich požadavcích pro vás nemusí být tak užitečné.

Zde je příklad, který ukazuje všechna data vrácená tímto zobrazením pro Žánry tabulka:

SELECT * FROM INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGEWHERE TABLE_NAME ='Žánry';

Výsledek:

TABLE_CATALOG | MusicTABLE_SCHEMA | dboTABLE_NAME | ŽánryCONSTRAINT_CATALOG | MusicCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | PK__Genres__0385057E88BB96F8

Příklad 5 – Systémové zobrazení TABLE_CONSTRAINTS

INFORMATION_SCHEMA.TABLE_CONSTRAINTS systémový pohled vrátí jeden řádek pro každé omezení tabulky v aktuální databázi.

SELECT TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPEFROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS;

Výsledek:

+--------------+------------------------------- +--------------------+| TABLE_NAME | CONSTRAINT_NAME | CONSTRAINT_TYPE ||--------------+-------------------------------+ -------------------|| Umělci | PK__Artists__25706B50FCD918B1 | PRIMÁRNÍ KLÍČ || Žánry | PK__Genres__0385057E88BB96F8 | PRIMÁRNÍ KLÍČ || Alba | PK__Alba__97B4BE379FC780BD | PRIMÁRNÍ KLÍČ || Alba | FK_Alba_Umělci | CIZÍ KLÍČ || Alba | FK_Alba_Žánry | CIZÍ KLÍČ |+--------------+------------------------------- +-------------------+

Toto zobrazení neposkytuje název sloupce, ale poskytuje typ omezení. Proto můžete zúžit výsledky pouze na primární klíče:

SELECT TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPEFROM INFORMATION_SCHEMA.TABLE_CONSTRAINTSWHERE CONSTRAINT_TYPE ='PRIMARY KEY';

Výsledek:

+--------------+------------------------------- +--------------------+| TABLE_NAME | CONSTRAINT_NAME | CONSTRAINT_TYPE ||--------------+-------------------------------+ -------------------|| Umělci | PK__Artists__25706B50FCD918B1 | PRIMÁRNÍ KLÍČ || Žánry | PK__Genres__0385057E88BB96F8 | PRIMÁRNÍ KLÍČ || Alba | PK__Alba__97B4BE379FC780BD | PRIMÁRNÍ KLÍČ |+--------------+------------------------------- +-------------------+

Zde je příklad, který používá zástupný znak (* ), chcete-li vrátit všechna data pro omezení na Umělci tabulka:

SELECT *FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTSWHERE TABLE_NAME ='Umělci';

Výsledek:

CONSTRAINT_CATALOG | MusicCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | PK__Artists__25706B50FCD918B1TABLE_KATALOG | MusicTABLE_SCHEMA | dboTABLE_NAME | UmělciCONSTRAINT_TYPE | PRIMARY KEYIS_DEFERRABLE | NOINITIALLY_DEFERRED | NE

Příklad 6 – Systémové zobrazení key_constraints

sys.key_constraints systémový pohled obsahuje řádek pro každý objekt, který je primárním klíčem nebo jedinečným omezením. Proto bychom mohli použít následující kód k vrácení všech omezení primárního klíče v databázi spolu s příslušnou tabulkou pro každý primární klíč:

SELECT OBJECT_NAME(parent_object_id) AS 'Table', nameFROM sys.key_constraints WHERE type ='PK';

Výsledek:

+---------+-------------------------------+| Tabulka | jméno ||---------+-------------------------------|| Umělci | PK__Artists__25706B50FCD918B1 || Žánry | PK__Genres__0385057E88BB96F8 || Alba | PK__Albums__97B4BE379FC780BD |+---------+--------------------------------+

WHERE samozřejmě můžete odstranit klauzule pro vrácení obou primárních klíčů a jedinečné klíče.

Předchozí příklad používá OBJECT_NAME() funkce, která vrátí název nadřazené tabulky, nikoli její id_objektu. Pokud jsem nepoužil OBJECT_NAME() funkce, výsledek by vypadal takto:

SELECT parent_object_id, nameFROM sys.key_constraintsWHERE type ='PK';

Výsledek:

+--------------------+------------------------- ------+| parent_object_id | jméno ||--------------------+-------------------------- -----|| 885578193 | PK__Artists__25706B50FCD918B1 || 917578307 | PK__Genres__0385057E88BB96F8 || 949578421 | PK__Albums__97B4BE379FC780BD |+--------------------+--------------------------- -----+

id rodičovského_objektu je vráceno místo názvu nadřazeného objektu. OBJECT_NAME() Díky této funkci je pro nás mnohem snazší porozumět tomu, na kterou tabulku jsou jednotlivé klávesy použity.

Zde je příklad, kdy používám zástupný znak (* ), chcete-li vrátit všechny sloupce pro primární klíč v Albech tabulka:

SELECT *FROM sys.key_constraintsWHERE type ='PK'AND OBJECT_NAME(parent_object_id) ='Alba';

Výsledek:

name | PK__Albums__97B4BE379FC780BDobject_id | 965578478principal_id | NULLschema_id | 1parent_object_id | 949578421typ | PKtype_desc | PRIMARY_KEY_CONSTRAINTcreate_date | 2019-05-02 12:56:06.377upravit_datum | 2019-05-02 12:56:06.377is_ms_shipped | 0is_published | 0is_schema_published | 0unique_index_id | 1is_system_named | 1je_vynuceno | 1

Příklad 7 – Systémové zobrazení sys.objects

Soubor sys.objects systémový pohled obsahuje řádek pro každý uživatelsky definovaný objekt v rozsahu schématu, který je vytvořen v databázi. Obsahuje tedy naše tabulky a primární klíče.

Můžeme vzít předchozí dotaz a nahradit key_constraints s objects a dostaneme stejný výsledek:

SELECT OBJECT_NAME(parent_object_id) AS 'Tabulka', nameFROM sys.objects WHERE type ='PK';

Výsledek:

+---------+-------------------------------+| Tabulka | jméno ||---------+-------------------------------|| Umělci | PK__Artists__25706B50FCD918B1 || Žánry | PK__Genres__0385057E88BB96F8 || Alba | PK__Albums__97B4BE379FC780BD |+---------+--------------------------------+

Zde je příklad, který vrací všechna data pro PK__Genres__0385057E88BB96F8 primární klíč:

SELECT *FROM sys.objectsWHERE name ='PK__Genres__0385057E88BB96F8';

Výsledek (při použití vertikálního výstupu):

name | PK__Genres__0385057E88BB96F8object_id | 933578364principal_id | NULLschema_id | 1parent_object_id | 917578307typ | PKtype_desc | PRIMARY_KEY_CONSTRAINTcreate_date | 2019-05-02 12:56:06.110upravit_datum | 2019-05-02 12:56:06.110is_ms_shipped | 0is_published | 0is_schema_published | 0

Příklad 8 – Systémové zobrazení REFERENTIAL_CONSTRAINTS

Tohle je trochu náročné, ale mohlo by to být užitečné v závislosti na vaší situaci. A technicky to vrací (některé) primární klíče.

INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS systémové zobrazení vrátí jeden řádek pro každý FOREIGN KEY omezení v aktuální databázi. Jeho účelem je tedy ve skutečnosti vracet cizí klíče – nikoli primární klíče. Toto zobrazení však může být užitečné, pokud chcete vidět pouze všechny primární klíče, které mají přidružený cizí klíč. Není to spolehlivá metoda, kterou lze použít, pokud chcete vidět všechny primární klíče bez ohledu na to, zda existuje přidružený cizí klíč.

Zde je příklad:

SELECT CONSTRAINT_NAME, UNIQUE_CONSTRAINT_NAMEFROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS;

Výsledek:

+-------------------+-------------------------- -----+| CONSTRAINT_NAME | UNIQUE_CONSTRAINT_NAME ||-------------------+--------------------------- ----|| FK_Alba_Umělci | PK__Artists__25706B50FCD918B1 || FK_Alba_Žánry | PK__Genres__0385057E88BB96F8 |+-------------------+---------------------------- ----+

Jak vidíte, vrátí se pouze ty primární klíče, které mají přidružený cizí klíč. Přesněji řečeno, ve skutečnosti je to naopak – vrací všechny cizí klíče spolu s jejich přiřazeným UNIQUE omezení.

Pokud tedy porovnáme tyto výsledky s výsledky z předchozích příkladů, vidíme, že jsou vráceny pouze dva primární klíče (ve srovnání se třemi z předchozích příkladů). Je to proto, že jeden z primárních klíčů v této databázi ( PK__Albums__97B4BE379FC780BD ) nemá přidružený cizí klíč.

Zde je příklad, který vrací všechna data pro cizí klíče, z nichž PK__Artists__25706B50FCD918B1 je UNIQUE omezení:

SELECT *FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTSWHERE UNIQUE_CONSTRAINT_NAME ='PK__Artists__25706B50FCD918B1';

Výsledek:

CONSTRAINT_CATALOG | HudbaCONSTRAINT_SCHÉMA | dboCONSTRAINT_NAME | FK_Albums_ArtistsUNIQUE_CONSTRAINT_CATALOG | HudbaUNIQUE_CONSTRAINT_SCHEMA | dboUNIQUE_CONSTRAINT_NAME | PK__Artists__25706B50FCD918B1MATCH_OPTION | SIMPLEUPDATE_RULE | NO ACTIONDELETE_RULE | ŽÁDNÁ AKCE

V tomto případě je vrácen pouze jeden cizí klíč.

Jak již bylo zmíněno, toto zobrazení slouží hlavně k vrácení informací o cizím klíči, takže tuto metodu použijte pouze v případě, že chcete vidět informace o cizím klíči spolu s přidruženým primárním klíčem. Tuto metodu nepoužívejte, pokud chcete vidět všechny primární klíče bez ohledu na to, zda mají přidružený cizí klíč.

Příklad 9 – Uložená procedura systému sp_fkeys

Tato metoda je podobná předchozí metodě v tom smyslu, že vrací informace o cizím klíči. Vrátí také primární klíč spojený s každým cizím klíčem.

Příklad:

EXEC sp_fkeys Artists;

Výsledek (při použití vertikálního výstupu):

PKTABLE_QUALIFIER | HudbaPKTABLE_OWNER | dboPKTABLE_NAME | UmělciPKCOLUMN_NAME | ArtistIdFKTABLE_QUALIFIER | MusicFKTABLE_OWNER | dboFKTABLE_NAME | AlbaFKCOLUMN_NAME | ArtistIdKEY_SEQ | 1UPDATE_RULE | 1DELETE_RULE | 1FK_NAME | FK_Albums_ArtistsPK_NAME | PK__Artists__25706B50FCD918B1ODLOŽENÍ | 7

Místo toho jsem mohl použít následující syntaxi (nebo kombinaci těchto argumentů):

EXEC sp_fkeys @pktable_name =Interpreti, @pktable_owner =dbo, @pktable_qualifier =Hudba, @fktable_name =Alba, @fktable_owner =dbo, @fktable_qualifier =Hudba;

Stejně jako v předchozím příkladu by se na tuto metodu nemělo spoléhat, že vrátí všechny primární klíče. Pokud primární klíč nemá přidružený cizí klíč, nebude vrácen.

Příklad 10 – Uložená procedura systému sp_helpconstraint

sp_helpconstraint systémová uložená procedura vrací seznam všech typů omezení, jejich uživatelem definovaný nebo systémem dodaný název, sloupce, ve kterých byly definovány, a výraz, který definuje omezení (pro DEFAULT a CHECK pouze omezení).

Proto jej můžete použít k vrácení informací o primárních klíčích ve vaší databázi.

Příklad:

EXEC sp_helpconstraint Alba;

Výsledek:

+----------------+| Název objektu ||----------------|| Alba |+---------------+ -[ RECORD 1 ]-------------------------constraint_type | CIZÍ KLÍČ Název_podmínky | FK_Albums_Artistsdelete_action | Žádná akceupdate_action | No Actionstatus_enabled | Enabledstatus_for_replication | Is_For_Replicationconstraint_keys | ArtistId-[ RECORD 2 ]-------------------------constraint_type | omezení_název | delete_action | update_action | status_enabled | status_for_replication | omezení_klíče | REFERENCE Music.dbo.Artists (ArtistId)-[ RECORD 3 ]-------------------------constraint_type | CIZÍ KLÍČ Název_podmínky | FK_Albums_Genresdelete_action | Žádná akceupdate_action | No Actionstatus_enabled | Enabledstatus_for_replication | Is_For_Replicationconstraint_keys | GenreId-[ RECORD 4 ]-------------------------constraint_type | omezení_název | delete_action | update_action | status_enabled | status_for_replication | omezení_klíče | ODKAZY Music.dbo.Genres (GenreId)-[ RECORD 5 ]-------------------------constraint_type | PRIMÁRNÍ KLÍČ (seskupený) název_omezení | PK__Albums__97B4BE379FC780BDdelete_action | (n/a)update_action | (n/a)status_enabled | (n/a)stav_pro_replikaci | (n/a)constraint_keys | AlbumId

Příklad 11 – Uložená procedura systému sp_help

sp_help uložená procedura systému hlásí informace o databázovém objektu (jakýkoli objekt uvedený v sys.sysobjects pohled kompatibility), uživatelsky definovaný datový typ nebo datový typ. To zahrnuje informace o primárních klíčích.

Když to spustíte bez jakýchkoli argumentů, zobrazí se informace o souhrnných informacích o objektech všech typů, které existují v aktuální databázi (tj. hodně informací).

Můžete však zadat název tabulky a ta vrátí informace o této tabulce. Opět se vám vrátí mnoho informací, ale mezi nimi budou primární klíčové informace.

Příklad:

EXEC sp_help Artists;

Výsledek:

+---------+---------+------------+------------- ------------+| Jméno | Majitel | Typ | Created_datetime ||---------+---------+------------+-------------- -----------|| Umělci | dbo | uživatelská tabulka | 2019-05-02 12:56:05.840 |+---------+----------+------------+------ --------------------+ -[ ZÁZNAM 1 ]------------------------ -název_sloupce | ArtistIdType | intComputed | nedélka | 4Prec | 10 Měřítko | 0 s možností null | noTrimTrailingBlanks | (n/a)FixedLenNullInSource | (n/a)Řízení | NULL-[ RECORD 2 ]-------------------------Název_sloupce | ArtistNameType | nvarcharVypočítaný | nedélka | 510 Prec | Měřítko | S možností null | noTrimTrailingBlanks | (n/a)FixedLenNullInSource | (n/a)Řízení | SQL_Latin1_General_CP1_CI_AS-[ RECORD 3 ]-------------------------Název_sloupce | ActiveFromType | datumVypočteno | nedélka | 3Prec | 10 Měřítko | 0 s možností null | yesTrimTrailingBlanks | (n/a)FixedLenNullInSource | (n/a)Řízení | NULL +------------+--------+-------------+------------- -----------+| Identita | Semeno | Přírůstek | Není pro replikaci ||------------+--------+-------------+--------- --------------|| ArtistId | 1 | 1 | 0 |+------------+--------+-------------+------------ ------------+ +-------------------------------+| RowGuidCol ||-------------------------------|| Není definován žádný sloupec rowguidcol. |+-------------------------------+ +---------------- ---------------+| Data_located_on_filegroup ||-----------------------------|| PRIMÁRNÍ |+-----------------------------+ +----------------- ---------------+---------------------------------- -----------------+--------------+| index_name | index_description | index_keys ||-------------------------------+--------------- -------------------------------------+------------- -|| PK__Artists__25706B50FCD918B1 | clusterovaný, jedinečný, primární klíč umístěný na PRIMARY | ArtistId |+-------------------------------+--------------- -------------------------------------+------------- -+ -[ ZÁZNAM 1 ]-------------------------typ_omezení | PRIMÁRNÍ KLÍČ (seskupený) název_omezení | PK__Artists__25706B50FCD918B1delete_action | (n/a)update_action | (n/a)status_enabled | (n/a)stav_pro_replikaci | (n/a)constraint_keys | ArtistId +--------------------------------------+| Tabulka je odkazována cizím klíčem ||--------------------------------------|| Music.dbo.Alba:FK_Albums_Artists |+--------------------------------------+ 

Můžete také zadat název primárního klíče, abyste o něm získali základní informace:

EXEC sp_help PK__Artists__25706B50FCD918B1;

Výsledek:

+-------------------------------+----------+---- -------------+-------------------------+| Jméno | Majitel | Typ | Created_datetime ||-------------------------------+---------+----- ------------+-------------------------|| PK__Artists__25706B50FCD918B1 | dbo | primární klíč cns | 2019-05-02 12:56:05.853 |+-------------------------------+------- ---+-----------------+-------------------------+ 
  1. Jak migrovat PostgreSQL databázi na SQLServer?

  2. Jak importovat / obnovit tabulky MySql pomocí PHP

  3. Doporučené postupy pro práci s více tabulkami

  4. Jak vytvořit asociativní pole v databázi Oracle