sql >> Database >  >> RDS >> Sqlserver

11 manieren om een ​​primaire sleutel in SQL Server op te halen (T-SQL-voorbeelden)

Er zijn vaak veel manieren om hetzelfde (of iets vergelijkbaars) te doen in SQL Server. Het ophalen van alle primaire sleutels uit een database (of zelfs alleen de primaire sleutel voor een bepaalde tabel) is een goed voorbeeld.

Dit artikel presenteert elf verschillende benaderingen voor het ophalen van primaire sleutelinformatie in SQL Server.

Sommige hiervan zullen nuttiger zijn dan andere, afhankelijk van uw exacte situatie.

Voorbeeld 1 – De sp_pkeys systeem opgeslagen procedure

Als u alleen de primaire sleutel voor een bepaalde tabel wilt, de sp_pkeys systeem opgeslagen procedure is waarschijnlijk de snelste en gemakkelijkste manier om het te doen. Om dit te doen, geeft u gewoon de tabelnaam door aan de procedure.

Zoals dit:

EXEC sp_pkeys Artiesten;

Resultaat (met verticale uitvoer):

TABLE_QUALIFIER | MuziekTABLE_OWNER | dboTABLE_NAME | ArtiestenCOLUMN_NAME | ArtistIdKEY_SEQ | 1PK_NAME | PK__Artists__25706B50FCD918B1

In dit geval heb ik de primaire sleutel opgevraagd bij de Artiesten tafel. Het geeft de naam van de primaire sleutel terug ( PK__Artists__25706B50FCD918B1 ), de databasenaam ( Muziek ), de tabelnaam, de kolomnaam ( ArtistId ), plus andere informatie.

Als alternatief had ik alle argumenten expliciet kunnen specificeren om hetzelfde resultaat te krijgen:

EXEC sp_pkeys @table_name =Artiesten, @table_owner =dbo, @table_qualifier =Muziek;

Voorbeeld 2 – De KEY_COLUMN_USAGE systeemweergave

De INFORMATION_SCHEMA.KEY_COLUMN_USAGE systeemweergave retourneert één rij voor elke kolom die is beperkt als een sleutel in de huidige database. Daarom krijg je bij deze weergave ook buitenlandse sleutels terug.

SELECT TABLE_NAME, COLUMN_NAME, CONSTRRAINT_NAMEFROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE;

Resultaat:

+--------------+---------------+--------------- ----------------+| TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME ||--------------+---------------+---------------- ---------------|| Albums | Artiest-ID | FK_Albums_Artiesten || Albums | Genre-ID | FK_Albums_Genres || Albums | Album-ID | PK__Albums__97B4BE379FC780BD || Artiesten | Artiest-ID | PK__Artiesten__25706B50FCD918B1 || Genres | Genre-ID | PK__Genres__0385057E88BB96F8 |+--------------+---------------+---------------- ---------------+

We kunnen zien dat dit beperkingen van alle tabellen retourneert. We kunnen ook een WHERE . toevoegen clausule om de resultaten te beperken tot een specifieke tabel.

SELECT TABLE_NAME, COLUMN_NAME, CONSTRRAINT_NAMEFROM INFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERE TABLE_NAME ='Artiesten';

Resultaat:

+--------------+---------------+--------------- ----------------+| TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME ||--------------+---------------+---------------- ---------------|| Artiesten | Artiest-ID | PK__Artiesten__25706B50FCD918B1 |+-------------+---------------+---------------- ---------------+

In deze voorbeelden heb ik de resultaten beperkt tot alleen die kolommen van de weergave waarin ik geïnteresseerd ben, maar je kunt ook de asterisk gebruiken (* ) jokerteken om alle kolommen terug te geven.

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

Resultaat (met verticale uitvoer):

CONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | PK__Artiesten__25706B50FCD918B1TABLE_CATALOG | MuziekTABLE_SCHEMA | dboTABLE_NAME | ArtiestenCOLUMN_NAME | ArtistIdORDINAL_POSITION | 1

Voorbeeld 3 – De CONSTRAINT_COLUMN_USAGE systeemweergave

Dit is vergelijkbaar met het vorige voorbeeld. De INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE systeemweergave retourneert één rij voor elke kolom in de huidige database waarvoor een beperking is gedefinieerd voor de kolom. Net als bij INFORMATION_SCHEMA.KEY_COLUMN_USAGE je krijgt ook buitenlandse sleutels terug met deze weergave. Echter, INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE is niet beperkt tot alleen de belangrijkste beperkingen.

SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAMEFROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE;

Resultaat:

+--------------+---------------+--------------- ----------------+| TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME ||--------------+---------------+---------------- ---------------|| Albums | Artiest-ID | FK_Albums_Artiesten || Albums | Genre-ID | FK_Albums_Genres || Albums | Album-ID | PK__Albums__97B4BE379FC780BD || Artiesten | Artiest-ID | PK__Artiesten__25706B50FCD918B1 || Genres | Genre-ID | PK__Genres__0385057E88BB96F8 |+--------------+---------------+---------------- ---------------+

U kunt een WHERE . gebruiken clausule om alleen een specifieke tabel of kolom te retourneren:

SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAMEFROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGEWHERE COLUMN_NAME ='Artiest-ID';

Resultaat:

+--------------+---------------+--------------- ----------------+| TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME ||--------------+---------------+---------------- ---------------|| Albums | Artiest-ID | FK_Albums_Artiesten || Artiesten | Artiest-ID | PK__Artiesten__25706B50FCD918B1 |+-------------+---------------+---------------- ---------------+

In dit geval heb ik een kolomnaam opgegeven, zodat alle beperkingen op kolommen met die naam werden geretourneerd. Het blijkt dat de database dezelfde kolomnaam gebruikt in twee verschillende tabellen. De ene heeft een externe sleutelbeperking, de andere een primaire sleutel. Daarom worden beide rijen geretourneerd.

Nogmaals, u kunt de asterisk (* ) jokerteken om alle kolommen terug te geven.

SELECT *FROM INFORMATION_SCHEMA.CONSTRRAINT_COLUMN_USAGEWHERE TABLE_NAME ='Artiesten';

Resultaat (met verticale uitvoer):

TABLE_CATALOG | MuziekTABLE_SCHEMA | dboTABLE_NAME | ArtiestenCOLUMN_NAME | ArtistIdCONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | PK__Artists__25706B50FCD918B1

In dit voorbeeld heb ik de uitvoer beperkt tot alleen beperkingen op een specifieke tabel.

Voorbeeld 4 – De CONSTRAINT_TABLE_USAGE systeemweergave

De INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE systeemweergave retourneert één rij voor elke tabel in de huidige database waarvoor een beperking voor de tabel is gedefinieerd.

SELECTEER TABLE_NAME, CONSTRAINT_NAME VANAF INFORMATION_SCHEMA.CONSTRRAINT_TABLE_USAGE;

Resultaat:

+--------------+------------------------------- +| TABLE_NAME | CONSTRAINT_NAME ||--------------+-------------------------------| | Artiesten | PK__Artiesten__25706B50FCD918B1 || Genres | PK__Genres__0385057E88BB96F8 || Albums | PK__Albums__97B4BE379FC780BD || Albums | FK_Albums_Artiesten || Albums | FK_Albums_Genres |+--------------+-------------------------------+ 

Deze weergave retourneert niet de kolomnamen waarop de beperkingen worden gebruikt, dus het is mogelijk niet zo handig voor u, afhankelijk van uw vereisten.

Hier is een voorbeeld dat alle gegevens toont die door deze weergave worden geretourneerd voor de Genres tafel:

SELECT * FROM INFORMATION_SCHEMA.CONSTRRAINT_TABLE_USAGEWHERE TABLE_NAME ='Genres';

Resultaat:

TABLE_CATALOG | MuziekTABLE_SCHEMA | dboTABLE_NAME | GenresCONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | PK__Genres__0385057E88BB96F8

Voorbeeld 5 – De TABLE_CONSTRAINTS systeemweergave

De INFORMATION_SCHEMA.TABLE_CONSTRAINTS systeemweergave retourneert één rij voor elke tabelbeperking in de huidige database.

SELECT TABLE_NAME, CONSTRAINT_NAME, CONSTRRAINT_TYPEFROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS;

Resultaat:

+--------------+------------------------------- +-------------------+| TABLE_NAME | CONSTRRAINT_NAME | CONSTRAINT_TYPE ||--------------+-------------------------------+ -------------------|| Artiesten | PK__Artiesten__25706B50FCD918B1 | PRIMAIRE SLEUTEL || Genres | PK__Genres__0385057E88BB96F8 | PRIMAIRE SLEUTEL || Albums | PK__Albums__97B4BE379FC780BD | PRIMAIRE SLEUTEL || Albums | FK_Albums_Artiesten | BUITENLANDSE SLEUTEL || Albums | FK_Albums_Genres | BUITENLANDSE SLEUTEL |+--------------+------------------------------- +-------------------+

Deze weergave biedt niet de kolomnaam, maar wel het type beperking. Daarom kunt u de resultaten beperken tot alleen primaire sleutels:

SELECT TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPEFROM INFORMATION_SCHEMA.TABLE_CONSTRAINTSWHERE CONSTRAINT_TYPE ='PRIMAIRE SLEUTEL';

Resultaat:

+--------------+------------------------------- +-------------------+| TABLE_NAME | CONSTRRAINT_NAME | CONSTRAINT_TYPE ||--------------+-------------------------------+ -------------------|| Artiesten | PK__Artiesten__25706B50FCD918B1 | PRIMAIRE SLEUTEL || Genres | PK__Genres__0385057E88BB96F8 | PRIMAIRE SLEUTEL || Albums | PK__Albums__97B4BE379FC780BD | PRIMAIRE TOETS |+--------------+------------------------------- +-------------------+

Hier is een voorbeeld dat een jokerteken gebruikt (* ) teken om alle gegevens voor beperkingen op de Artiesten . te retourneren tafel:

SELECT *FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTSWHERE TABLE_NAME ='Artiesten';

Resultaat:

CONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | PK__Artiesten__25706B50FCD918B1TABLE_CATALOG | MuziekTABLE_SCHEMA | dboTABLE_NAME | ArtiestenCONSTRAINT_TYPE | PRIMAIRE KEYIS_DEFERRABLE | NOINITIALLY_DEFERRED | NEE

Voorbeeld 6 – De key_constraints systeemweergave

De sys.key_constraints systeemweergave bevat een rij voor elk object dat een primaire sleutel of unieke beperking is. Daarom kunnen we de volgende code gebruiken om alle primaire-sleutelbeperkingen in de database te retourneren, samen met de relevante tabel voor elke primaire sleutel:

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

Resultaat:

+---------+-------------------------------+| Tafel | naam ||---------+-------------------------------|| Artiesten | PK__Artiesten__25706B50FCD918B1 || Genres | PK__Genres__0385057E88BB96F8 || Albums | PK__Albums__97B4BE379FC780BD |+---------+-------------------------------+

Natuurlijk kun je de WHERE . verwijderen clausule om beide primaire sleutels en . te retourneren unieke sleutels.

Het vorige voorbeeld gebruikt de OBJECT_NAME() functie om de naam van de bovenliggende tabel te retourneren in plaats van de object_id. Als ik de OBJECT_NAME() . niet heb gebruikt functie, zou het resultaat er als volgt hebben uitgezien:

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

Resultaat:

+--------------------+------------------------- ------+| parent_object_id | naam ||--------------------+-------------------------- -----|| 885578193 | PK__Artiesten__25706B50FCD918B1 || 917578307 | PK__Genres__0385057E88BB96F8 || 949578421 | PK__Albums__97B4BE379FC780BD |+-------------------+-------------------------- -----+

De parent_object_id wordt geretourneerd in plaats van de naam van het bovenliggende object. De OBJECT_NAME() functie maakt het veel gemakkelijker voor ons om te begrijpen op welke tabel elke toets wordt toegepast.

Hier is een voorbeeld waarbij ik het jokerteken gebruik (* ) teken om alle kolommen voor de primaire sleutel op de Albums . terug te geven tafel:

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

Resultaat:

naam | PK__Albums__97B4BE379FC780BDobject_id | 965578478principal_id | NULLschema_id | 1ouder_object_id | 949578421type | PKtype_desc | PRIMARY_KEY_CONSTRAINTcreate_date | 2019-05-02 12:56:06.377modify_date | 2019-05-02 12:56:06.377is_ms_shipped | 0is_published | 0is_schema_published | 0unieke_index_id | 1is_system_named | 1is_afgedwongen | 1

Voorbeeld 7 – De sys.objects systeemweergave

De sys.objects systeemweergave bevat een rij voor elk door de gebruiker gedefinieerd object met schemabereik dat in een database wordt gemaakt. Het bevat dus onze tabellen en primaire sleutels.

We kunnen de vorige query nemen en key_constraints vervangen met objects en we krijgen hetzelfde resultaat:

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

Resultaat:

+---------+-------------------------------+| Tafel | naam ||---------+-------------------------------|| Artiesten | PK__Artiesten__25706B50FCD918B1 || Genres | PK__Genres__0385057E88BB96F8 || Albums | PK__Albums__97B4BE379FC780BD |+---------+-------------------------------+

Hier is een voorbeeld dat alle gegevens retourneert voor de PK__Genres__0385057E88BB96F8 primaire sleutel:

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

Resultaat (met verticale uitvoer):

naam | PK__Genres__0385057E88BB96F8object_id | 933578364principal_id | NULLschema_id | 1ouder_object_id | 917578307type | PKtype_desc | PRIMARY_KEY_CONSTRAINTcreate_date | 2019-05-02 12:56:06.110modify_date | 2019-05-02 12:56:06.110is_ms_shipped | 0is_published | 0is_schema_published | 0

Voorbeeld 8 – De REFERENTIAL_CONSTRAINTS systeemweergave

Deze is een beetje lang, maar het kan handig zijn, afhankelijk van uw situatie. En technisch gezien retourneert het (sommige) primaire sleutels.

De INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS systeemweergave retourneert één rij voor elke FOREIGN KEY beperking in de huidige database. Het doel is dus eigenlijk om externe sleutels te retourneren - niet primaire sleutels. Deze weergave kan echter handig zijn als u alleen alle primaire sleutels wilt zien waaraan een externe sleutel is gekoppeld. Het is geen betrouwbare methode om te gebruiken als u alle primaire sleutels wilt zien, ongeacht of er een bijbehorende externe sleutel is.

Hier is een voorbeeld:

SELECT CONSTRAINT_NAME, UNIQUE_CONSTRAINT_NAMEFROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS;

Resultaat:

+-------------------+-------------------------- -----+| CONSTRRAINT_NAME | UNIQUE_CONSTRAINT_NAME ||-------------------+--------------------------- ----|| FK_Albums_Artiesten | PK__Artiesten__25706B50FCD918B1 || FK_Albums_Genres | PK__Genres__0385057E88BB96F8 |+-------------------+--------------------------- ----+

Zoals u kunt zien, retourneert dit alleen die primaire sleutels die een bijbehorende externe sleutel hebben. Om preciezer te zijn, het is eigenlijk andersom - het retourneert alle buitenlandse sleutels, samen met de bijbehorende UNIQUE beperking.

Dus als we deze resultaten vergelijken met de resultaten van eerdere voorbeelden, kunnen we zien dat er slechts twee primaire sleutels worden geretourneerd (vergeleken met drie uit eerdere voorbeelden). Dit komt doordat een van de primaire sleutels in deze database ( PK__Albums__97B4BE379FC780BD ) heeft geen bijbehorende externe sleutel.

Hier is een voorbeeld dat alle gegevens retourneert voor externe sleutels waarvan PK__Artists__25706B50FCD918B1 is de UNIQUE beperking:

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

Resultaat:

CONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | FK_Albums_ArtistsUNIQUE_CONSTRAINT_CATALOG | MuziekUNIQUE_CONSTRRAINT_SCHEMA | dboUNIQUE_CONSTRAINT_NAME | PK__Artiesten__25706B50FCD918B1MATCH_OPTION | SIMPLEUPDATE_RULE | GEEN ACTIONDELETE_RULE | GEEN ACTIE

In dit geval wordt er slechts één externe sleutel geretourneerd.

Zoals vermeld, is deze weergave voornamelijk bedoeld voor het retourneren van externe sleutelinformatie, dus gebruik deze methode alleen als u informatie over externe sleutels samen met de bijbehorende primaire sleutel wilt zien. Gebruik deze methode niet als u alle primaire sleutels wilt zien, ongeacht of ze een bijbehorende externe sleutel hebben.

Voorbeeld 9 – De sp_fkeys systeem opgeslagen procedure

Deze methode is vergelijkbaar met de vorige methode, in die zin dat deze externe sleutelinformatie retourneert. Het geeft ook de primaire sleutel terug die bij elke externe sleutel hoort.

Voorbeeld:

EXEC sp_fkeys Artiesten;

Resultaat (met verticale uitvoer):

PKTABLE_QUALIFIER | MuziekPKTABLE_OWNER | dboPKTABLE_NAME | ArtiestenPKCOLUMN_NAME | ArtistIdFKTABLE_QUALIFIER | MuziekFKTABLE_OWNER | dboFKTABLE_NAME | AlbumsFKCOLUMN_NAME | ArtistIdKEY_SEQ | 1UPDATE_RULE | 1DELETE_RULE | 1FK_NAME | FK_Albums_ArtistsPK_NAME | PK__Artiesten__25706B50FCD918B1UITSTELBAARHEID | 7

Ik had in plaats daarvan de volgende syntaxis kunnen gebruiken (of een combinatie van deze argumenten):

EXEC sp_fkeys @pktable_name =Artiesten, @pktable_owner =dbo, @pktable_qualifier =Muziek, @fktable_name =Albums, @fktable_owner =dbo, @fktable_qualifier =Muziek;

Net als bij het vorige voorbeeld, moet er niet op deze methode worden vertrouwd om alle primaire sleutels te retourneren. Als een primaire sleutel geen bijbehorende externe sleutel heeft, wordt deze niet geretourneerd.

Voorbeeld 10 – De sp_helpconstraint systeem opgeslagen procedure

De sp_helpconstraint systeem opgeslagen procedure retourneert een lijst met alle typen beperkingen, hun door de gebruiker gedefinieerde of door het systeem geleverde naam, de kolommen waarop ze zijn gedefinieerd en de expressie die de beperking definieert (voor DEFAULT en CHECK alleen beperkingen).

Daarom kunt u het gebruiken om informatie over primaire sleutels in uw database terug te geven.

Voorbeeld:

EXEC sp_helpconstraint Albums;

Resultaat:

+---------------+| Objectnaam ||---------------|| Albums |+---------------+ -[ RECORD 1 ]-------------------------constraint_type | FOREIGN KEYconstraint_name | FK_Albums_Artistsdelete_action | Geen Actionupdate_action | Geen actiestatus_enabled | Ingeschakeldstatus_for_replicatie | Is_For_Replicationconstraint_keys | ArtistId-[ RECORD 2 ]-------------------------constraint_type | constraint_name | delete_action | update_action | status_enabled | status_voor_replicatie | constraint_keys | REFERENTIES Music.dbo.Artists (ArtistId)-[ RECORD 3 ]-------------------------constraint_type | FOREIGN KEYconstraint_name | FK_Albums_Genresdelete_action | Geen Actionupdate_action | Geen actiestatus_enabled | Ingeschakeldstatus_for_replicatie | Is_For_Replicationconstraint_keys | GenreId-[ RECORD 4 ]-------------------------constraint_type | constraint_name | delete_action | update_action | status_enabled | status_voor_replicatie | constraint_keys | REFERENTIES Muziek.dbo.Genres (GenreId)-[ RECORD 5 ]-------------------------constraint_type | PRIMAIRE SLEUTEL (geclusterd) constraint_name | PK__Albums__97B4BE379FC780BDdelete_action | (n.v.t.)update_action | (n.v.t.)status_enabled | (n.v.t.)status_voor_replicatie | (n.v.t.)constraint_keys | Album-ID

Voorbeeld 11 – De sp_help systeem opgeslagen procedure

De sp_help door het systeem opgeslagen procedure rapporteert informatie over een databaseobject (elk object dat wordt vermeld in de sys.sysobjects compatibiliteitsweergave), een door de gebruiker gedefinieerd gegevenstype of een gegevenstype. Dit omvat informatie over primaire sleutels.

Als u dit zonder enige argumenten uitvoert, wordt informatie geretourneerd over de samenvattende informatie van alle typen objecten die in de huidige database voorkomen (d.w.z. een lot van informatie).

U kunt echter de naam van een tabel opgeven en deze zal informatie over die tabel retourneren. Nogmaals, je krijgt veel informatie terug, maar dit zal primaire belangrijke informatie zijn.

Voorbeeld:

EXEC sp_help Artiesten;

Resultaat:

+---------+---------+------------+------------- ------------+| Naam | Eigenaar | Typ | Created_datetime ||---------+---------+------------+-------------- -----------|| Artiesten | dbo | gebruikerstabel | 2019-05-02 12:56:05.840 |+---------+---------+------------+----- --------------------+ -[ OPNAME 1 ]------------------------ -Kolomnaam | ArtiestIdType | intBerekend | geen lengte | 4Prec | 10 Schaal | 0 Nullable | noTrimTrailingBlanks | (n.v.t.)FixedLenNullInSource | (n.v.t.)Collatie | NULL-[ RECORD 2 ]-------------------------Kolomnaam | ArtiestNaamType | nvarcharBerekend | geen lengte | 510Prec | Schaal | Nullable | noTrimTrailingBlanks | (n.v.t.)FixedLenNullInSource | (n.v.t.)Collatie | SQL_Latin1_General_CP1_CI_AS-[ RECORD 3 ]-------------------------Kolomnaam | ActiveFromType | datumBerekend | geen lengte | 3Prec | 10 Schaal | 0 Nullable | yesTrimTrailingBlanken | (n.v.t.)FixedLenNullInSource | (n.v.t.)Collatie | NULL +------------+--------+-------------+------------ -----------+| Identiteit | Zaad | Verhogen | Niet voor replicatie ||------------+--------+-------------+--------- --------------|| Artiest-ID | 1 | 1 | 0 |+------------+--------+-------------+----------- ------------+ +-------------------------------+| RowGuidCol ||-------------------------------|| Geen kolom rowguidcol gedefinieerd. |+-------------------------------+ +--------------- --------------+| Data_located_on_filegroup ||-----------------------------|| PRIMAIRE |+-----------------------------+ +---------------- ---------------+---------------------------------- -----------------+--------------+| index_name | index_description | index_keys ||-------------------------------+--------------- ------------------------------------+------------- -|| PK__Artiesten__25706B50FCD918B1 | geclusterde, unieke, primaire sleutel op PRIMARY | Artiest-ID |+-------------------------------+--------------- ------------------------------------+------------- -+ -[ RECORD 1 ]-------------------------constraint_type | PRIMAIRE SLEUTEL (geclusterd) constraint_name | PK__Artiesten__25706B50FCD918B1delete_action | (n.v.t.)update_action | (n.v.t.)status_enabled | (n.v.t.)status_voor_replicatie | (n.v.t.)constraint_keys | Artiest-ID +--------------------------------------+| Naar tabel wordt verwezen met een externe sleutel ||--------------------------------------|| Music.dbo.Albums:FK_Albums_Artists |+--------------------------------------+

U kunt ook de naam van een primaire sleutel opgeven om er wat basisinformatie over te krijgen:

EXEC sp_help PK__Artists__25706B50FCD918B1;

Resultaat:

+-------------------------------+---------+---- -------------+-------------------------+| Naam | Eigenaar | Typ | Created_datetime ||-------------------------------+---------+----- ------------+-------------------------|| PK__Artiesten__25706B50FCD918B1 | dbo | primaire sleutel cns | 2019-05-02 12:56:05.853 |+-------------------------------+------ ---+-----------------+-------------------------+

  1. Hoe verlaat ik een script in SQLPlus wanneer er een fout optreedt en keer ik terug naar de SQLPlus-prompt, zonder SQLPlus te verbreken of af te sluiten?

  2. Dynamische MySQL-databaseverbinding voor Entity Framework 6

  3. Wat is een Flat File Database? Hoe verschilt het van een relationele database?

  4. ODBC-toepassingen verbinden met MySQL