Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wyświetl listę wszystkich kolumn tożsamości w bazie danych programu SQL Server:sys.identity_columns

Możesz użyć T-SQL, aby zwrócić listę kolumn tożsamości w bazie danych w SQL Server.

Możesz to zrobić za pomocą sys.identity_columns widok katalogu systemowego.

Przykład 1 – Podstawowe użycie

Oto przykład do zademonstrowania.

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

Wynik:

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

Użyłem mojego Test baza danych dla tego przykładu. Wybrałem ten, ponieważ wcześniej stworzyłem kolumny tożsamości z różnymi wartościami przyrostu nasion.

W tym przykładzie użyłem OBJECT_NAME() funkcja do pobrania nazwy obiektu z object_id kolumna. W tym przypadku jest to nazwa tabeli. Innymi słowy, pierwsza kolumna zawiera nazwę tabeli, a druga kolumna zawiera kolumnę tożsamości.

Przykład 2 – Lista wszystkich kolumn

W poprzednim przykładzie zwróciłem tylko kilka kolumn. Dzieje się tak, ponieważ sys.identity_columns zwraca wiele kolumn.

W tym przykładzie zwracam tylko jedną kolumnę tożsamości (tj. jeden wiersz), ale zwracam wszystkie kolumny dla tego wiersza. Używam wyjścia pionowego podczas wyświetlania wyników, aby nie trzeba było przewijać na boki.

SELECT *
FROM sys.identity_columns
WHERE OBJECT_NAME(object_id) = 'Cities';

Wynik (przy użyciu wyjścia pionowego):

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

Większość z tych kolumn jest dziedziczona z sys.columns , ale niektóre są unikalne dla kolumn sys.identity columns . Szczegółowy opis tych kolumn znajduje się w dokumentacji firmy Microsoft dla sys.columns i sys.identity columns .

W tym tabele i schematy

Być może zauważyłeś, że te przykłady nie zawierają schematu w zestawie wyników. Zobacz Dołączanie tabel i schematów podczas wyświetlania kolumn tożsamości, jeśli chcesz zwrócić schemat. Ten artykuł zawiera również przykład usuwania wewnętrznych tabel z wyników.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 sposoby tworzenia tabeli na serwerze połączonym za pomocą T-SQL

  2. SQL Server - definiowanie kolumny typu XML z kodowaniem UTF-8

  3. Łączenie trzech stołów z łączeniami innymi niż INNER JOIN

  4. Włączenie programu SQL Server do rozproszonej transakcji XA

  5. Jak wstawić dane pliku binarnego do binarnego pola SQL za pomocą prostej instrukcji INSERT?