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

Таблици със списък на SQL Server:Как да покажа всички таблици

В зависимост от версията на SQL Server, която използвате, методът за запитване и връщане на списък с всички създадени от потребителя таблици може леко да се различава. По-долу ще разгледаме накратко TSQL изразите, които могат да се използват за извличане на списък с таблици както за по-старата версия на SQL Server 2000, така и за по-новата версия 2005 или по-нататък.

Списък на таблици в SQL Server 2000

За по-стари версии на SQL Server (като SQL Server 2000, въпреки че този метод се поддържа и в SQL Server 2005 за обратна съвместимост), ще трябва да потърсите SYS.SYSOBJECTS изглед на метаданни. SYS.SYSOBJECTS съдържа ред за всеки обект, който е създаден в базата данни, включително stored procedures , views и user tables (които е важно да се разграничат от system tables .)

SYSOBJECTS таблицата съдържа няколко дузини колони с данни, тъй като тя трябва да съдържа информация за почти всичко, добавено към сървъра с течение на времето. Следователно, за да намерите списък със създадени от потребителя таблици (игнорирайки по този начин system tables ), ще трябва да намерим резултати, където xtype колона (която определя object type за този ред) е равно на стойността U , което означава user table . Полученият TSQL оператор трябва да изглежда така:

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

Забележка:От SYSOBJECTS са част от SYS пространство от имена, когато отправяте заявка за SYSOBJECTS не е необходимо да указвате, че SYSOBJECTS е част от глобалния SYS пространство от имена, така че можем да го пропуснем, както е показано в примера по-горе.

Това ще върне списък с резултати от всички създадени от потребителя таблици. Тъй като количеството информация, което се връща при запитване на всички колони, е доста голямо, може да искате да отрежете резултатите, като прегледате само name колона и може би crdate (дата на създаване):

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

Списък на таблици в SQL Server 2005 или по-нов

Изброяването на всички таблици в SQL сървъра при използване на по-нова версия (SQL 2005 или по-нова) е въпрос на запитване на INFORMATION_SCHEMA изгледи, които автоматично се вграждат в SQL Server. Те ви позволяват лесно да преглеждате голямо разнообразие от метаданни за този конкретен екземпляр на SQL Server, включително информация за COLUMNS , ROUTINES и дори TABLES .

Може да забележите, че има четири върнати колони, когато използвате INFORMATION_SCHEMA.TABLES изглед, но най-важната колона е TABLE_TYPE , което определя дали таблицата в този ред е действителна таблица (BASE TABLE ) или изглед (VIEW ).

За да върнете всички таблици и изгледи в една заявка, изпълнете следния TSQL оператор:

SELECT
  *
FROM
  INFORMATION_SCHEMA.TABLES;
GO

Може също така да е разумно да посочите базата данни, която искате да направите заявка:

SELECT
  *
FROM
  databaseName.INFORMATION_SCHEMA.TABLES;
GO

Ако искате да извлечете само действителни таблици и да филтрирате изгледи от резултатите, добавете WHERE TABLE_TYPE = 'BASE TABLE' клауза:

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. Таблици на SQL Server:каква е разликата между @, # и ##?

  2. Използвайте XEvent Profiler за улавяне на заявки в SQL Server

  3. Драйверът Go with SQL Server не може да се свърже успешно, неуспешно влизане

  4. SQL Server и уязвимостите Spectre/Meltdown

  5. Как да включите резултати, които се равняват на последното място, когато използвате клаузата TOP в SQL Server