Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak znaleźć wszystkie nazwy kolumn synonimu?

IMHO nie należy używać INFORMATION_SCHEMA za każdą z tych rzeczy . Poniższe czynności będą działać dla tabeli lub widoku:

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

Następujące czynności będą działać dla synonimu (wymaganie, które zmieniłeś później):

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;
  

Możesz też po prostu powiedzieć:

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. Ile razy dany znak pojawia się w ciągu znaków

  2. Jak zmienić typ danych kolumny w SQL Server (T-SQL)

  3. Wybierz unikalne nazwy kolumn z listy połączonych tabel

  4. Kompletny przewodnik po naprawie błędu bazy danych SQL 5243

  5. Jak znaleźć tekst wewnątrz procedur / wyzwalaczy SQL Server?