sql >> Database >  >> RDS >> Sqlserver

11 manieren om externe sleutels in een SQL Server-database te retourneren met T-SQL

Dit artikel presenteert elf verschillende benaderingen voor het ophalen van externe sleutelinformatie in SQL Server. Sommige hiervan zullen nuttiger zijn dan andere, afhankelijk van de situatie.

Sommige van deze methoden kunnen worden gewijzigd om meer informatie terug te geven. U kunt bijvoorbeeld samenvoegingen uitvoeren op verschillende systeemweergaven om meer gegevens te retourneren.

Voorbeeld 1 – De sp_fkeys systeem opgeslagen procedure

De sp_fkeys systeem opgeslagen procedure retourneert logische externe sleutelinformatie voor de huidige omgeving. Het toont relaties met externe sleutels, inclusief uitgeschakelde externe sleutels.

Deze opgeslagen procedure is ideaal wanneer u externe sleutelinformatie voor een specifieke tabel nodig hebt. U geeft eenvoudig de tabelnaam van de primaire of vreemde sleutel door aan de procedure, en deze zal de relevante informatie teruggeven.

Voorbeeld:

EXEC sp_fkeys @fktable_name =Albums;

Resultaat (met verticale uitvoer):

-[ RECORD 1 ]-------------------------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-[ RECORD 2 ]-------------------------PKTABLE_QUALIFIER | MuziekPKTABLE_OWNER | dboPKTABLE_NAME | GenresPKCOLUMN_NAME | GenreIdFKTABLE_QUALIFIER | MuziekFKTABLE_OWNER | dboFKTABLE_NAME | AlbumsFKCOLUMN_NAME | GenreIdKEY_SEQ | 1UPDATE_RULE | 1DELETE_RULE | 1FK_NAME | FK_Albums_GenresPK_NAME | PK__Genres__0385057E88BB96F8UITSTELBAARHEID | 7

Een andere manier om deze weergave te gebruiken is door de tabelnaam van de primaire sleutel op te geven:

EXEC sp_fkeys @pktable_name =Artiesten;

Resultaat (met verticale uitvoer):

-[ RECORD 1 ]-------------------------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

U kunt ook andere argumenten gebruiken, zoals de tabeleigenaar en tabelkwalificatie:

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

Voorbeeld 2 – De REFERENTIAL_CONSTRAINTS systeemweergave

De INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS systeemweergave retourneert één rij voor elke FOREIGN KEY beperking in de huidige database.

Dit is ideaal om snel een lijst met externe sleutels in de database te retourneren, samen met de bijbehorende unieke beperking. U bent niet beperkt tot slechts één tabel zoals in het vorige voorbeeld.

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 |+-------------------+--------------------------- ----+

Dus in dit geval kunnen we elke externe sleutel in de huidige database zien, samen met de bijbehorende primaire sleutel.

Het blijkt dat deze database slechts twee externe sleutels heeft en dat het dezelfde zijn die we in het vorige voorbeeld zagen.

Hier is een voorbeeld dat alle gegevens retourneert voor de FK_Albums_Artists buitenlandse sleutel:

SELECT *FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTSWHERE CONSTRAINT_NAME ='FK_Albums_Artists';

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

U zult merken dat deze methode niet de details van de primaire en refererende sleuteltabel geeft die u bij de vorige methode krijgt, dus u moet enkele joins maken met andere views als u die informatie nodig heeft (of een van de methoden gebruiken hieronder).

Voorbeeld 3 – 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.

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 alle beperkingen retourneert, inclusief primaire sleutels.

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 ='Albums';

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 |+-------------+---------------+---------------- --------------+

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 ='Albums';

Resultaat (met verticale uitvoer):

-[ RECORD 1 ]-------------------------CONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | FK_Albums_ArtistsTABLE_CATALOG | MuziekTABLE_SCHEMA | dboTABLE_NAME | AlbumsCOLUMN_NAME | ArtistIdORDINAL_POSITION | 1-[ RECORD 2 ]-------------------------CONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | FK_Albums_GenresTABLE_CATALOG | MuziekTABLE_SCHEMA | dboTABLE_NAME | AlbumsCOLUMN_NAME | GenreIdORDINAL_POSITION | 1-[ RECORD 3 ]-------------------------CONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | PK__Albums__97B4BE379FC780BDTABLE_CATALOG | MuziekTABLE_SCHEMA | dboTABLE_NAME | AlbumsCOLUMN_NAME | AlbumIdORDINAL_POSITION | 1

Voorbeeld 4 – 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 primaire sleutels teruggestuurd 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.

Hier is een voorbeeld waarin ik alle gegevens voor een specifieke tabel terugstuur:

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

Resultaat (met verticale uitvoer):

-[ RECORD 1 ]-------------------------TABLE_CATALOG | MuziekTABLE_SCHEMA | dboTABLE_NAME | AlbumsCOLUMN_NAME | ArtistIdCONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | FK_Albums_Artists-[ RECORD 2 ]-------------------------TABLE_CATALOG | MuziekTABLE_SCHEMA | dboTABLE_NAME | AlbumsCOLUMN_NAME | GenreIdCONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | FK_Albums_Genres-[ RECORD 3 ]-------------------------TABLE_CATALOG | MuziekTABLE_SCHEMA | dboTABLE_NAME | AlbumsCOLUMN_NAME | AlbumIdCONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | PK__Albums__97B4BE379FC780BD

Voorbeeld 5 – 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 Albums tafel:

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

Resultaat:

-[ RECORD 1 ]-------------------------TABLE_CATALOG | MuziekTABLE_SCHEMA | dboTABLE_NAME | AlbumsCONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | PK__Albums__97B4BE379FC780BD-[ RECORD 2 ]-------------------------TABLE_CATALOG | MuziekTABLE_SCHEMA | dboTABLE_NAME | AlbumsCONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | FK_Albums_Artists-[ RECORD 3 ]-------------------------TABLE_CATALOG | MuziekTABLE_SCHEMA | dboTABLE_NAME | AlbumsCONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | FK_Albums_Genres

Voorbeeld 6 – 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 externe sleutels:

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

Resultaat:

+--------------+-------------------+----------- --------+| TABLE_NAME | CONSTRRAINT_NAME | CONSTRAINT_TYPE ||--------------+-------------------+------------ -------|| Albums | FK_Albums_Artiesten | BUITENLANDSE SLEUTEL || Albums | FK_Albums_Genres | BUITENLANDSE SLEUTEL |+--------------+-------------------+----------- --------+

Hier is een voorbeeld dat een jokerteken gebruikt (* ) teken om alle gegevens te retourneren voor de externe sleutelbeperkingen die zijn toegepast op de Albums tafel:

SELECT *FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTSWHERE TABLE_NAME ='Albums'AND CONSTRAINT_TYPE ='BUITENLANDSE SLEUTEL';

Resultaat:

-[ RECORD 1 ]-------------------------CONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | FK_Albums_ArtistsTABLE_CATALOG | MuziekTABLE_SCHEMA | dboTABLE_NAME | AlbumsCONSTRAINT_TYPE | BUITENLANDSE KEYIS_DEFERRABLE | NOINITIALLY_DEFERRED | NO-[ RECORD 2 ]-------------------------CONSTRAINT_CATALOG | MuziekCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | FK_Albums_GenresTABLE_CATALOG | MuziekTABLE_SCHEMA | dboTABLE_NAME | AlbumsCONSTRAINT_TYPE | BUITENLANDSE KEYIS_DEFERRABLE | NOINITIALLY_DEFERRED | NEE

Voorbeeld 7 – De sys.foreign_keys systeemweergave

De sys.foreign_keys systeemweergave bevat een rij per object dat een FOREIGN KEY . is beperking, met sys.object.type = F (“F” staat voor “Foreign Key”).

Voorbeeld:

SELECT naam AS 'Constraint', OBJECT_NAME(parent_object_id) AS 'Table', OBJECT_NAME(referenced_object_id) AS 'Referenced Column'FROM sys.foreign_keys;

Resultaat:

+-------------------+---------+---------------- -----+| beperking | Tafel | Kolom waarnaar wordt verwezen ||-------------------+---------+---------------- -----|| FK_Albums_Artiesten | Albums | Artiesten || FK_Albums_Genres | Albums | Genres |+-------------------+---------+----------------- ----+

Hier is het bij het retourneren van alle gegevens voor de FK_Albums_Artists buitenlandse sleutel:

SELECT * FROM sys.foreign_keysWHERE naam ='FK_Albums_Artists';

Resultaat:

naam | FK_Albums_Artistsobject_id | 981578535principal_id | NULLschema_id | 1ouder_object_id | 949578421type | F type_desc | FOREIGN_KEY_CONSTRAINTcreate_date | 2019-05-02 12:56:06.380modify_date | 2019-05-02 12:56:06.380is_ms_shipped | 0is_published | 0is_schema_published | 0referenced_object_id | 885578193key_index_id | 1is_disabled | 0is_not_for_replicatie | 0is_not_trusted | 0delete_referential_action | 0delete_referential_action_desc | NO_ACTIONupdate_referential_action | 0update_referential_action_desc | NO_ACTIONis_system_named | 0

Voorbeeld 8 – De systeemweergave sys.foreign_key_columns

De sys.foreign_key_columns systeemweergave bevat een rij voor elke kolom, of reeks kolommen, die een externe sleutel bevatten.

Voorbeeld:

SELECT OBJECT_NAME(constraint_object_id) AS 'Foreign Key', OBJECT_NAME(parent_object_id) AS 'Table', OBJECT_NAME(referenced_object_id) AS 'Referenced Table'FROM sys.foreign_key_columns;

Resultaat:

+--------------------+---------+--------------- -----+| Buitenlandse sleutel | Tafel | Tabel waarnaar wordt verwezen ||--------------------+---------+--------------- -----|| FK_Albums_Artiesten | Albums | Artiesten || FK_Albums_Genres | Albums | Genres || FK_Artists_Country | Artiesten | Land |+--------------------+---------+---------------- ----+

En hier is het bij het retourneren van alle gegevens voor de FK_Albums_Artists buitenlandse sleutel:

SELECT * FROM sys.foreign_key_columnsWHERE OBJECT_NAME(constraint_object_id) ='FK_Albums_Artists';

Resultaat:

constraint_object_id | 981578535constraint_column_id | 1ouder_object_id | 949578421parent_column_id | 4referenced_object_id | 885578193referenced_column_id | 1

Voorbeeld 9 – 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 informatie over onze externe sleutels.

Voorbeeld:

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

Resultaat:

+---------+-------------------+| Tafel | naam ||---------+-------------------|| Albums | FK_Albums_Artiesten || Albums | FK_Albums_Genres |+---------+-------------------+

In dit voorbeeld heb ik de resultaten beperkt tot alleen externe sleutels (type F ).

Hier is een voorbeeld dat alle gegevens retourneert voor de FK_Albums_Artists buitenlandse sleutel:

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

Resultaat (met verticale uitvoer):

-[ RECORD 1 ]-------------------------naam | FK_Albums_Artistsobject_id | 981578535principal_id | NULLschema_id | 1ouder_object_id | 949578421type | F type_desc | FOREIGN_KEY_CONSTRAINTcreate_date | 2019-05-02 12:56:06.380modify_date | 2019-05-02 12:56:06.380is_ms_shipped | 0is_published | 0is_schema_published | 0

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 externe sleutels in uw database terug te sturen.

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 externe 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 daaronder zal ook externe sleutelinformatie zijn.

Voorbeeld:

EXEC sp_help Albums;

Resultaat:

+--------+---------+------------+-------------- -----------+| Naam | Eigenaar | Typ | Created_datetime ||--------+---------+------------+--------------- ----------|| Albums | dbo | gebruikerstabel | 2019-05-02 12:56:06.370 |+--------+---------+------------+------ -------------------+ -[ OPNAME 1 ]------------------------- Kolomnaam | AlbumIdType | intBerekend | geen lengte | 4Prec | 10 Schaal | 0 Nullable | noTrimTrailingBlanks | (n.v.t.)FixedLenNullInSource | (n.v.t.)Collatie | NULL-[ RECORD 2 ]-------------------------Kolomnaam | AlbumNaamType | nvarcharBerekend | geen lengte | 510Prec | Schaal | Nullable | noTrimTrailingBlanks | (n.v.t.)FixedLenNullInSource | (n.v.t.)Collatie | SQL_Latin1_General_CP1_CI_AS-[ RECORD 3 ]-------------------------Kolomnaam | ReleasedatumType | datumBerekend | geen lengte | 3Prec | 10 Schaal | 0 Nullable | noTrimTrailingBlanks | (n.v.t.)FixedLenNullInSource | (n.v.t.)Collatie | NULL-[ RECORD 4 ]-------------------------Kolomnaam | ArtiestIdType | intBerekend | geen lengte | 4Prec | 10 Schaal | 0 Nullable | noTrimTrailingBlanks | (n.v.t.)FixedLenNullInSource | (n.v.t.)Collatie | NULL-[ RECORD 5 ]-------------------------Kolomnaam | GenreIdType | intBerekend | geen lengte | 4Prec | 10 Schaal | 0 Nullable | noTrimTrailingBlanks | (n.v.t.)FixedLenNullInSource | (n.v.t.)Collatie | NULL +------------+--------+-------------+------------ -----------+| Identiteit | Zaad | Verhogen | Niet voor replicatie ||------------+--------+-------------+--------- --------------|| Album-ID | 1 | 1 | 0 |+------------+--------+-------------+----------- ------------+ +-------------------------------+| RowGuidCol ||-------------------------------|| Geen kolom rowguidcol gedefinieerd. |+-------------------------------+ +--------------- --------------+| Data_located_on_filegroup ||-----------------------------|| PRIMAIRE |+-----------------------------+ +---------------- --------------+----------------------------------- ----------------+--------------+| index_name | index_description | index_keys ||------------------------------+---------------- -----------------------------------+-------------- || PK__Albums__97B4BE379FC780BD | geclusterde, unieke, primaire sleutel op PRIMARY | Album-ID |+------------------------------+---------------- -----------------------------------+-------------- + -[ 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

  1. Splits door komma's gescheiden waarden naar kolommen in Oracle

  2. Hoe een substring selecteren in Oracle SQL tot een specifiek teken?

  3. Converteer django RawQuerySet naar Queryset

  4. Wat is het verschil tussen het gebruik van INDEX en KEY in MySQL?