sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man hittar alla kolumnnamn för en synonym

IMHO du bör inte använda INFORMATION_SCHEMA för något av detta . Följande kommer att fungera för en tabell eller en vy:

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

Följande kommer att fungera för en synonym (ett krav som du ändrade senare):

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;
  

Du kan också bara säga:

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. det går inte att ansluta till AWS RDS postgres-instans från pgadmin4

  2. R:stränglista i ifelse

  3. RODBC-strängen trunkeras

  4. Hur upprätthåller man en begränsning av främmande nyckel från orelaterade tabeller i Mysql?