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

Tabele z listą SQL Server:Jak wyświetlić wszystkie tabele

W zależności od używanej wersji programu SQL Server metoda wykonywania zapytań i zwracania listy wszystkich tabel utworzonych przez użytkowników może się nieznacznie różnić. Poniżej krótko przeanalizujemy instrukcje TSQL, których można użyć do pobrania listy tabel zarówno dla starszego SQL Server 2000, jak i nowszej wersji 2005 lub nowszej.

Lista tabel w SQL Server 2000

W przypadku starszych wersji SQL Server (takich jak SQL Server 2000, chociaż ta metoda jest również obsługiwana w SQL Server 2005 w celu zapewnienia zgodności wstecznej), konieczne będzie zapytanie o SYS.SYSOBJECTS widok metadanych. SYS.SYSOBJECTS zawiera wiersz dla każdego obiektu, który został utworzony w bazie danych, w tym stored procedures , views i user tables (które są ważne do odróżnienia od system tables .)

SYSOBJECTS tabela zawiera kilkadziesiąt kolumn danych, ponieważ musi zawierać informacje o praktycznie wszystkich dodanych do serwera w czasie. Dlatego, aby znaleźć listę tabel utworzonych przez użytkowników (w ten sposób ignorując system tables ), musimy znaleźć wyniki, w których xtype kolumna (która określa object type dla tego wiersza) jest równa wartości U , co oznacza user table . Wynikowa instrukcja TSQL powinna wyglądać tak:

SELECT
  *
FROM
  SYSOBJECTS
WHERE
  xtype = 'U';
GO

Uwaga:od SYSOBJECTS są częścią SYS przestrzeń nazw, podczas zapytania SYSOBJECTS nie trzeba określać, że SYSOBJECTS jest częścią globalnego SYS przestrzeń nazw, więc możemy ją pominąć, jak pokazano w powyższym przykładzie.

Spowoduje to zwrócenie listy wyników wszystkich tabel utworzonych przez użytkownika. Ponieważ ilość informacji zwracanych podczas odpytywania wszystkich kolumn jest dość duża, możesz chcieć przyciąć wyniki, wyświetlając tylko name kolumna i być może crdate (data powstania):

SELECT
  name,
  crdate
FROM
  SYSOBJECTS
WHERE
  xtype = 'U';
GO

Listing tabel w programie SQL Server 2005 lub nowszym

Wyświetlenie wszystkich tabel na serwerze SQL w przypadku korzystania z nowszej wersji (SQL 2005 lub nowszej) jest kwestią zapytania INFORMATION_SCHEMA widoki, które są automatycznie wbudowane w SQL Server. Umożliwiają one łatwe przeglądanie szerokiej gamy metadanych dla tej konkretnej instancji SQL Server, w tym informacji o COLUMNS , ROUTINES , a nawet TABLES .

Możesz zauważyć, że podczas korzystania z INFORMATION_SCHEMA.TABLES zwracane są cztery kolumny widok, ale najważniejszą kolumną jest TABLE_TYPE , który określa, czy tabela w tym wierszu jest rzeczywistą tabelą (BASE TABLE ) lub widok (VIEW ).

Aby zwrócić wszystkie tabele i widoków w jednym zapytaniu, wykonaj następującą instrukcję TSQL:

SELECT
  *
FROM
  INFORMATION_SCHEMA.TABLES;
GO

Rozsądne może być również określenie bazy danych, do której chcesz wysłać zapytanie:

SELECT
  *
FROM
  databaseName.INFORMATION_SCHEMA.TABLES;
GO

Jeśli chcesz tylko pobrać rzeczywiste tabele i odfiltrować widoki z wyników, dodaj WHERE TABLE_TYPE = 'BASE TABLE' klauzula:

SELECT
  *
FROM
  databaseName.INFORMATION_SCHEMA.TABLES
WHERE
  TABLE_TYPE = 'BASE TABLE';
GO

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie zdarzeń rozszerzonych do rejestrowania przestarzałych funkcji używanych w wystąpieniu programu SQL Server (przykład T-SQL)

  2. Utwórz procedurę składowaną w SQL Server 2017

  3. Kiedy używać wspólnego wyrażenia tabelowego (CTE)

  4. Jak działa funkcja STR() w SQL Server (T-SQL)

  5. Algorytm pozwalający uniknąć wstrzykiwania SQL na MSSQL Server z kodu C#?