sql >> Database >  >> RDS >> Sqlserver

Hoe alle kolomnamen van een synoniem te vinden

IMHO je moet INFORMATION_SCHEMA voor dit alles . Het volgende werkt voor een tafel of een weergave:

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

Het volgende werkt voor een synoniem (een vereiste die u later hebt gewijzigd):

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;
  

Je kunt ook gewoon zeggen:

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. Oracle - de functie to_number toepassen op een varchar-kolom

  2. Illegale string-offset 'Data_length'/'Index_length' voor elke rij tabel

  3. Gegevens invoegen en verwijderen in PostgreSQL

  4. XML-gegevens openen in Oracle