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

Bagaimana menemukan semua nama kolom dari sinonim

IMHO Anda tidak boleh menggunakan INFORMATION_SCHEMA untuk semua ini . Berikut ini akan berfungsi untuk tabel atau tampilan:

SELECT UPPER(name)
  FROM sys.columns
  WHERE OBJECT_NAME([object_id]) = N'mutable';

Berikut ini akan berfungsi untuk sinonim (persyaratan yang Anda ubah nanti):

SELECT UPPER(name) 
  FROM sys.columns AS c
  CROSS APPLY
  (
    SELECT name
    FROM sys.synonyms 
    WHERE name = N'mutable'
    AND OBJECT_ID([base_object_name]) = c.[object_id]
  ) AS x;
  

Anda juga bisa mengatakan:

DECLARE @obj INT;

SELECT @obj = OBJECT_ID([base_object_name]) 
  FROM sys.synonyms WHERE name = N'mutable';

SELECT UPPER(name) FROM sys.columns WHERE [object_id] = @obj;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NOT IN (subquery) menghasilkan baris nol

  2. PERIKSA KENDALA pada beberapa kolom

  3. login gagal untuk pengguna 'sa'. Pengguna tidak terkait dengan koneksi SQL Server tepercaya. (Microsoft SQL Server, Kesalahan:18452) di sql 2008

  4. menggabungkan beberapa ekspresi tabel umum

  5. Bagaimana cara mensimulasikan DEADLOCK di SQL Server?