sql >> Database teknologi >  >> RDS >> Sqlserver

Vis alle identitetskolonner i en SQL Server-database:sys.identity_columns

Du kan bruge T-SQL til at returnere en liste over identitetskolonner i en database i SQL Server.

Du kan gøre dette ved at bruge sys.identity_columns systemkatalogvisning.

Eksempel 1 – Grundlæggende brug

Her er et eksempel til at demonstrere.

USE Test;SELECT OBJECT_NAME(object_id) AS [object], name, seed_value, increment_value, last_value, is_not_for_replicationFROM sys.identity_columns;

Resultat:

+-----------------------------+------------------------ +--------------+--------------------+-------- +--------------------------------+| objekt | navn | frøværdi | stigningsværdi | sidste_værdi | er_ikke_til_replikering ||--------------------------------+------------------+ --------------+--------------------+-----------+ --------------------------|| ConstraintTest | ConstraintTestId | 1 | 1 | 17 | 0 || sqlagent_job_historie | instans_id | 1 | 1 | NULL | 0 || sqlagent_jobsteps_logs | log_id | 1 | 1 | NULL | 0 || Katte | id | 1 | 1 | 2 | 0 || Hunde | id | 1 | 1 | 1 | 0 || t1 | id | 1 | 1 | 2 | 0 || t2 | id | 150 | 10 | 160 | 0 || scope_identity_test | id | 1 | 1 | 3 | 0 || Begivenhed | EventId | 1 | 1 | NULL | 0 || Resultattavle | ScoreId | 1 | 1 | 8 | 0 || Kæledyr | PetId | 1 | 1 | 5 | 0 || Bedste venner | pet_id | 101 | 10 | 121 | 0 || Byer | CityId | 150 | 10 | 180 | 0 || Farver | ColorId | 1 | 1 | 6 | 0 || købeskeder_1977058079 | queuing_order | 0 | 1 | NULL | 0 || t6 | id | 1 | 1 | 1 | 0 || t7 | id | 100 | 1 | 100 | 0 || queue_messages_2009058193 | queuing_order | 0 | 1 | NULL | 0 || queue_messages_2041058307 | queuing_order | 0 | 1 | NULL | 0 |+----------------------------+------------------------+ --------------+--------------------+-----------+ --------------------------+

Jeg brugte min Test database for dette eksempel. Jeg valgte denne, fordi jeg tidligere har oprettet identitetskolonner med forskellige seed-stigningsværdier.

I dette eksempel brugte jeg OBJECT_NAME() funktion for at hente objektets navn fra object_id kolonne. I dette tilfælde er det tabellens navn. Så med andre ord, den første kolonne viser tabelnavnet, og den anden kolonne viser identitetskolonnen.

Eksempel 2 – Vis alle kolonner

I det foregående eksempel returnerede jeg kun en håndfuld kolonner. Dette er fordi sys.identity_columns returnerer mange kolonner.

I dette eksempel returnerer jeg kun én identitetskolonne (dvs. én række), men jeg returnerer alle kolonner for den række. Jeg bruger lodret output, når jeg viser resultaterne, så du ikke er tvunget til at rulle sidelæns.

SELECT *FROM sys.identity_columnsWHERE OBJECT_NAME(object_id) ='Byer';

Resultat (ved hjælp af lodret output):

objekt_id | 1970106059navn | CityIdcolumn_id | 1system_type_id | 56user_type_id | 56max_længde | 4præcision | 10 skala | 0sorteringsnavn | NULLis_nullable | 0is_ansi_polstret | 0is_rowguidcol | 0is_identitet | 1is_filestream | 0er_replikeret | 0is_non_sql_subscribed | 0is_merge_published | 0is_dts_replikeret | 0is_xml_document | 0xml_collection_id | 0default_object_id | 0rule_object_id | 0 frøværdi | 150increment_value | 10sidste_værdi | 180er_ikke_til_replikering | 0is_computed | 0is_sparse | 0is_column_set | 0genereret_altid_type | 0generated_always_type_desc | NOT_APPLICABLEencryption_type | NULLencryption_type_desc | NULLencryption_algorithm_name | NULLcolumn_encryption_key_id | NULL-kolonne_krypteringsnøgle_databasenavn | NULLis_hidden | 0is_masked | 0graftype | NULLgraph_type_desc | NULL

De fleste af disse kolonner er nedarvet fra sys.columns , men nogle er unikke for sys.identity columns . For en detaljeret beskrivelse af disse kolonner, se Microsoft-dokumentationen for sys.columns og sys.identity columns .

Inklusive tabeller og skemaer

Du har måske bemærket, at disse eksempler ikke inkluderer skemaet i resultatsættet. Se Inkludering af tabeller og skemaer, når du angiver identitetskolonnerne, hvis du skal returnere skemaet. Denne artikel indeholder også et eksempel på fjernelse af interne tabeller fra resultaterne.


  1. Hvordan erstatter man et regulært udtryk i MySQL?

  2. Korrekthed og begrænsninger

  3. Afgrænsere i MySQL

  4. 4 måder at kontrollere en kolonnes datatype i MariaDB