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

3 Cara untuk Mengetahui apakah Kolom adalah Kolom yang Dihitung di SQL Server

Artikel ini menyajikan tiga cara menggunakan T-SQL untuk mengetahui apakah kolom adalah kolom yang dihitung di SQL Server.

Ini untuk saat Anda mengetahui nama kolom, tetapi Anda tidak tahu apakah itu kolom yang dihitung atau tidak.

Fungsi COLUMNPROPERTY()

COLUMNPROPERTY() fungsi mengembalikan informasi tentang kolom tertentu.

Salah satu properti yang diterima sebagai argumen oleh fungsi ini disebut IsComputed . Anda akan mendapatkan 1 jika kolom dihitung, dan 0 jika tidak.

PILIH PROPERTI KOLOM( OBJECT_ID('dbo.Products'), 'TotalValue', 'IsComputed') AS [Kolom yang Dihitung?];

Hasil:

+--------------------+| Kolom yang Dihitung? ||--------------------||| 1 |+--------------------+

Dalam hal ini saya memeriksa untuk melihat apakah TotalValue kolom adalah kolom yang dihitung, dan hasilnya adalah 1 , yang berarti kolom yang dihitung.

Tampilan Katalog Sistem sys.computed_columns

sys.computed_columns tampilan katalog sistem berisi satu baris untuk setiap kolom yang dihitung dalam database. Oleh karena itu, Anda dapat menanyakan tampilan ini untuk melihat apakah kolom Anda dihitung.

SELECT is_computed AS [Kolom yang Dihitung?]FROM sys.computed_columnsWHERE name ='TotalValue';

Hasil:

+--------------------+| Kolom yang Dihitung? ||--------------------||| 1 |+--------------------+

Anda juga dapat menggunakan tampilan ini jika Anda hanya mengetahui nama tabel. Jika Anda tidak tahu nama kolomnya, tetapi Anda hanya mencoba mencari tahu apakah tabel berisi kolom yang dihitung, Anda dapat melakukan sesuatu seperti ini:

PILIH nama SEBAGAI [Kolom Terhitung]FROM sys.computed_columnsWHERE object_id =OBJECT_ID('dbo.Products');

Hasil:

+-------------------+| Kolom yang Dihitung ||-------------------|| TotalValue |+-------------------+

Dalam hal ini saya tahu nama tabelnya adalah Products , jadi saya menggunakan OBJECT_ID() untuk mendapatkan ID-nya dan mencocokkannya dengan object_id kolom (yang merupakan ID objek tempat kolom tersebut berada).

Dalam contoh ini saya hanya mengembalikan satu kolom. Seperti halnya tampilan apa pun, Anda dapat mengembalikan kolom sebanyak yang Anda suka. Salah satu kolom dari tampilan ini berisi definisi kolom yang dihitung. Berikut kueri yang mengembalikan semua kolom.

SELECT *FROM sys.computed_columnsWHERE name ='TotalValue';

Hasil (menggunakan keluaran vertikal):

object_id | 814625945nama | TotalValuecolumn_id | 5system_type_id | 60user_type_id | 60max_length | 8presisi | skala 19 | 4kolasi_nama | NULLis_nullable | 1is_ansi_padded | 0is_rowguidcol | 0is_identitas | 0is_filestream | 0is_replika | 0is_non_sql_berlangganan | 0is_merge_published | 0is_dts_replicated | 0is_xml_document | 0xml_collection_id | 0default_object_id | 0rule_object_id | 0definisi | ([Jumlah]*[Harga])uses_database_collation | 1is_bertahan | 1is_dihitung | 1is_jarang | 0is_kolom_set | 0generated_always_type | 0generated_always_type_desc | NOT_APPLICABLEencryption_type | NULLenkripsi_tipe_desc | NULLenkripsi_algoritma_nama | NULLcolumn_encryption_key_id | NULLcolumn_encryption_key_database_name | NULLis_hidden | 0is_masked | 0graph_type | NULLgraph_type_desc | NULL

Tampilan Katalog Sistem sys.columns

sys.computed_columns tampilan sebenarnya mewarisi is_computed kolom (dan sekelompok kolom lainnya) dari sys.columns . Oleh karena itu, Anda juga dapat menggunakan sys.columns untuk memeriksa apakah kolom adalah kolom yang dihitung.

SELECT is_computedFROM sys.columnsWHERE name ='TotalValue';

Hasil:

+---------------+| is_computed ||---------------|| 1 |+---------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ExecuteReader membutuhkan Koneksi yang terbuka dan tersedia. Status koneksi saat ini adalah Menghubungkan

  2. Jumlah Kumulatif SQL Server berdasarkan Grup

  3. Di kolom apa indeks berkerumun harus diletakkan?

  4. Gabung alami di SQL Server

  5. Bagaimana menemukan semua dependensi tabel di sql server