Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Daftar Semua Kolom Identitas di Database SQL Server:sys.identity_columns

Anda dapat menggunakan T-SQL untuk mengembalikan daftar kolom identitas dalam database di SQL Server.

Anda dapat melakukannya menggunakan sys.identity_columns tampilan katalog sistem.

Contoh 1 – Penggunaan Dasar

Berikut ini contoh untuk didemonstrasikan.

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

Hasil:

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

Saya menggunakan Test database untuk contoh ini. Saya memilih yang ini karena saya sebelumnya telah membuat kolom identitas dengan berbagai nilai peningkatan benih.

Dalam contoh ini saya menggunakan OBJECT_NAME() berfungsi untuk mendapatkan nama objek dari object_id kolom. Dalam hal ini adalah nama tabel. Jadi dengan kata lain, kolom pertama mencantumkan nama tabel, dan kolom kedua mencantumkan kolom identitas.

Contoh 2 – Daftar Semua Kolom

Pada contoh sebelumnya saya hanya mengembalikan beberapa kolom. Ini karena sys.identity_columns mengembalikan banyak kolom.

Dalam contoh ini saya hanya mengembalikan satu kolom identitas (yaitu satu baris), tetapi saya mengembalikan semua kolom untuk baris itu. Saya menggunakan output vertikal saat menampilkan hasil sehingga Anda tidak dipaksa untuk menggulir ke samping.

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

Hasil (menggunakan keluaran vertikal):

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

Sebagian besar kolom ini diwarisi dari sys.columns , tetapi beberapa unik untuk sys.identity columns . Untuk penjelasan rinci tentang kolom ini, lihat dokumentasi Microsoft untuk sys.columns dan sys.identity columns .

Termasuk Tabel &Skema

Anda mungkin telah memperhatikan bahwa contoh-contoh ini tidak menyertakan skema dalam kumpulan hasil. Lihat Menyertakan Tabel &Skema saat Mendaftar Kolom Identitas jika Anda perlu mengembalikan skema. Artikel itu juga menyertakan contoh penghapusan tabel internal dari hasil.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengotomatiskan Pengumpulan Data pada Pertumbuhan Database SQL Server

  2. Kesalahan SQL Server 110:Ada lebih sedikit kolom dalam pernyataan INSERT daripada nilai yang ditentukan dalam klausa VALUES.

  3. Masalah Besar :SQL Server 2016 Paket Layanan 1

  4. konversikan Nomor Seri Tanggal Excel ke Tanggal Reguler

  5. JSON_QUERY() Contoh di SQL Server (T-SQL)