w zależności od używanej wersji SQL Server metoda zapytań i zwracania listy wszystkich tabel utworzonych przez użytkownika może się nieznacznie różnić. Poniżej krótko przyjrzymy się instrukcjom TSQL, które można wykorzystać do pobrania listy tabel zarówno dla starszej wersji SQL Server 2000, jak i nowszej wersji 2005 lub nowszej.,

wyświetlanie 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 dla zgodności wstecznej), musisz odpytywać widok metadanych SYS.SYSOBJECTS. 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.,)

tabelaSYSOBJECTS zawiera kilkadziesiąt kolumn danych, ponieważ musi zawierać informacje o praktycznie wszystkim, co zostało dodane do serwera w czasie. Dlatego, aby znaleźć listę tabel utworzonych przez użytkownika (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ć następująco:

SELECT *FROM SYSOBJECTSWHERE xtype = 'U';GO

Uwaga: PonieważSYSOBJECTSsą częścią przestrzeni nazwSYSpodczas zapytańSYSOBJECTSnie jest konieczne określenie, żeSYSOBJECTSjest częścią globalnej przestrzeni nazwSYS, więc możemy ją pominąć, jak pokazano w powyższym przykładzie.

zwróci listę 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, przeglądając tylko kolumnę name I być może crdate (Data utworzenia):

SELECT name, crdateFROM SYSOBJECTSWHERE xtype = 'U';GO

wyświetlanie tabel w SQL Server 2005 lub nowszym

wyświetlanie wszystkich tabel w SQL Server podczas korzystania z nowszej wersji (SQL 2005 lub nowszej) jest kwestią zapytania widoków INFORMATION_SCHEMA, które są automatycznie wbudowane w SQL Server., Pozwalają one na łatwe przeglądanie szerokiej gamy metadanych dla tej konkretnej instancji serwera SQL, w tym informacji o COLUMNS, ROUTINES, a nawet TABLES.

możesz zauważyć, że są cztery kolumny zwracane podczas korzystania z widoku INFORMATION_SCHEMA.TABLES, ale najważniejszą kolumną jest TABLE_TYPE, która określa, czy tabela w tym wierszu jest rzeczywistą tabelą (BASE TABLE), czy widokiem (BASE TABLE).10e2120a65 ” >

).,

aby zwrócić wszystkie tabele i widoki w jednym zapytaniu, wykonaj następujące polecenie TSQL:

SELECT *FROM INFORMATION_SCHEMA.TABLES;GO

może być również rozsądne określenie bazy danych, którą chcesz odpytywać:

SELECT *FROM databaseName.INFORMATION_SCHEMA.TABLES;GO

jeśli chcesz pobierać tylko rzeczywiste tabele i filtrować widoki z wyników, dodajWHERE TABLE_TYPE = 'BASE TABLE'klauzula:

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