Pomocí T-SQL můžete vrátit seznam sloupců identity v databázi na serveru SQL Server.
Můžete to udělat pomocí sys.identity_columns
zobrazení systémového katalogu.
Příklad 1 – Základní použití
Zde je příklad k demonstraci.
USE Test; SELECT OBJECT_NAME(object_id) AS [object], name, seed_value, increment_value, last_value, is_not_for_replication FROM sys.identity_columns;
Výsledek:
+---------------------------+------------------+--------------+-------------------+--------------+--------------------------+ | object | name | seed_value | increment_value | last_value | is_not_for_replication | |---------------------------+------------------+--------------+-------------------+--------------+--------------------------| | ConstraintTest | ConstraintTestId | 1 | 1 | 17 | 0 | | sqlagent_job_history | instance_id | 1 | 1 | NULL | 0 | | sqlagent_jobsteps_logs | log_id | 1 | 1 | NULL | 0 | | Cats | id | 1 | 1 | 2 | 0 | | Dogs | 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 | | Event | EventId | 1 | 1 | NULL | 0 | | Scoreboard | ScoreId | 1 | 1 | 8 | 0 | | Pets | PetId | 1 | 1 | 5 | 0 | | BestFriends | pet_id | 101 | 10 | 121 | 0 | | Cities | CityId | 150 | 10 | 180 | 0 | | Colors | ColorId | 1 | 1 | 6 | 0 | | queue_messages_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 | +---------------------------+------------------+--------------+-------------------+--------------+--------------------------+
Použil jsem svůj Test
databáze pro tento příklad. Vybral jsem si tento, protože jsem dříve vytvořil sloupce identity s různými hodnotami přírůstku seed.
V tomto příkladu jsem použil OBJECT_NAME()
funkci získat název objektu z object_id
sloupec. V tomto případě je to název tabulky. Jinými slovy, první sloupec uvádí název tabulky a druhý sloupec uvádí sloupec identity.
Příklad 2 – Seznam všech sloupců
V předchozím příkladu jsem vrátil pouze několik sloupců. Důvodem je sys.identity_columns
vrátí mnoho sloupců.
V tomto příkladu vrátím pouze jeden sloupec identity (tj. jeden řádek), ale vrátím všechny sloupce pro tento řádek. Při zobrazování výsledků používám vertikální výstup, abyste nebyli nuceni posouvat se do stran.
SELECT * FROM sys.identity_columns WHERE OBJECT_NAME(object_id) = 'Cities';
Výsledek (při použití vertikálního výstupu):
object_id | 1970106059 name | CityId column_id | 1 system_type_id | 56 user_type_id | 56 max_length | 4 precision | 10 scale | 0 collation_name | NULL is_nullable | 0 is_ansi_padded | 0 is_rowguidcol | 0 is_identity | 1 is_filestream | 0 is_replicated | 0 is_non_sql_subscribed | 0 is_merge_published | 0 is_dts_replicated | 0 is_xml_document | 0 xml_collection_id | 0 default_object_id | 0 rule_object_id | 0 seed_value | 150 increment_value | 10 last_value | 180 is_not_for_replication | 0 is_computed | 0 is_sparse | 0 is_column_set | 0 generated_always_type | 0 generated_always_type_desc | NOT_APPLICABLE encryption_type | NULL encryption_type_desc | NULL encryption_algorithm_name | NULL column_encryption_key_id | NULL column_encryption_key_database_name | NULL is_hidden | 0 is_masked | 0 graph_type | NULL graph_type_desc | NULL
Většina těchto sloupců je zděděna z sys.columns
, ale některé jsou jedinečné pro sys.identity columns
. Podrobný popis těchto sloupců naleznete v dokumentaci společnosti Microsoft pro sys.columns
a sys.identity columns
.
Včetně tabulek a schémat
Možná jste si všimli, že tyto příklady nezahrnují schéma v sadě výsledků. Pokud potřebujete vrátit schéma, viz Včetně tabulek a schémat při výpisu sloupců identity. Tento článek také obsahuje příklad odstranění interních tabulek z výsledků.