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

Temukan nama kolom sebenarnya dari alias yang digunakan dalam tampilan?

Mengingat pandangan ini:

CREATE VIEW viewTest
AS
SELECT
    books.id,
    books.author,
    Books.title AS Name
FROM
    Books

Apa yang saya lihat Anda bisa mendapatkan kolom yang digunakan dan tabel yang digunakan dengan melakukan ini:

SELECT * 
FROM INFORMATION_SCHEMA.VIEW_COLUMN_USAGE AS UsedColumns 
WHERE UsedColumns.VIEW_NAME='viewTest'

SELECT * 
FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE AS UsedTables 
WHERE UsedTables.VIEW_NAME='viewTest'

Ini untuk sql server 2005+. Lihat referensi di sini

Sunting

Berikan pandangan yang sama. Coba kueri ini:

SELECT
    c.name AS columnName,
    columnTypes.name as dataType,
    aliases.name as alias
FROM 
sys.views v 
JOIN sys.sql_dependencies d 
    ON d.object_id = v.object_id
JOIN .sys.objects t 
    ON t.object_id = d.referenced_major_id
JOIN sys.columns c 
    ON c.object_id = d.referenced_major_id 
JOIN sys.types AS columnTypes 
    ON c.user_type_id=columnTypes.user_type_id
    AND c.column_id = d.referenced_minor_id
JOIN sys.columns AS aliases
    on c.column_id=aliases.column_id
    AND aliases.object_id = object_id('viewTest')
WHERE
    v.name = 'viewTest';

Ini mengembalikan ini untuk saya:

columnName  dataType  alias

id          int       id
author      varchar   author
title       varchar   Name

Ini juga diuji dalam sql 2005+



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat Fungsi Buatan Pengguna Skalar di SQL Server

  2. Bagaimana saya bisa membandingkan waktu di SQL Server?

  3. Cara Menggabungkan String dan Nilai NULL di SQL Server

  4. Menghitung nilai menggunakan nilai baris sebelumnya di T-SQL

  5. OBJECTPROPERTY() vs OBJECTPROPERTYEX() di SQL Server:Apa Perbedaannya?