Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да намерите всички имена на колони на синоним

IMHO не трябва да използвате INFORMATION_SCHEMA за което и да е от това . Следното ще работи за таблица или изглед:

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

Следното ще работи за синоним (изискване, което променихте по-късно):

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;
  

Можете също просто да кажете:

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. Редът на Sql JOIN влияе ли на производителността?

  2. Как да дам на собственика на базата данни (DBO) разрешение EXTERNAL ACCESS ASSEMBLY?

  3. Архивиране на SQL Server 2017 -2

  4. SQL Unpivot множество колони Данни

  5. Избор на процесор за SQL Server 2012