В зависимост от версията на 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