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