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

5 sposobów na zliczanie liczby tabel zdefiniowanych przez użytkownika w bazie danych SQL Server

Poniżej znajduje się pięć metod, za pomocą których można szybko określić, ile tabel zdefiniowanych przez użytkownika znajduje się w bieżącej bazie danych w programie SQL Server.

Wszystkie pięć opcji korzysta z COUNT() funkcja, aby uzyskać liczbę. Oczywiście możesz to zastąpić gwiazdką (* ) lub nazwy kolumn, aby zwrócić listę wszystkich tabel zdefiniowanych przez użytkownika.

Opcja 1 – sys.tables

Najbardziej oczywistym sposobem na to jest wykonanie zapytania do sys.tables widok katalogu systemowego. Całym celem tego widoku jest zwrócenie wiersza dla każdej tabeli użytkownika, więc jest to dokładnie to, czego potrzebujemy.

USE WideWorldImportersDW;
SELECT COUNT(*) AS [Number of User Tables]
FROM sys.tables;

Wynik:

+-------------------------+
| Number of User Tables   |
|-------------------------|
| 29                      |
+-------------------------+

W tym przypadku zwracam liczbę tabel użytkowników z WideWorldImportersDW baza danych.

Jeśli przejdę do innej bazy danych, otrzymam inny wynik:

USE Music;
SELECT COUNT(*) AS [Number of User Tables]
FROM sys.tables;

Wynik:

+-------------------------+
| Number of User Tables   |
|-------------------------|
| 4                       |
+-------------------------+

Jak wspomniano, możesz wyświetlić listę tabel po prostu zastępując COUNT(*) linia z gwiazdką (* ) lub nazwy kolumn:

USE Music;
SELECT name
FROM sys.tables;

Wynik:

+---------+
| name    |
|---------|
| Artists |
| Genres  |
| Albums  |
| Country |
+---------+

Opcja 2 – Filtruj sys.objects według typu

Inną opcją jest zapytanie o sys.objects widok katalogu.

USE Music;
SELECT COUNT(*) AS [Number of User Tables]
FROM sys.objects 
WHERE type = 'U';

Wynik:

+-------------------------+
| Number of User Tables   |
|-------------------------|
| 4                       |
+-------------------------+

W takim przypadku musisz filtrować według type = 'U' (U dotyczy „Tabeli użytkownika”).

Opcja 3 – Filtruj sys.objects według „Opisu typu”

Inny sposób odpytywania sys.objects Widok polega na filtrowaniu wyników według type_desc kolumna.

USE Music;
SELECT COUNT(*) AS [Number of User Tables]
FROM sys.objects 
WHERE type_desc = 'USER_TABLE';

Wynik:

+-------------------------+
| Number of User Tables   |
|-------------------------|
| 4                       |
+-------------------------+

Opcja 4 – Filtruj sys.objects za pomocą funkcji OBJECTPROPERTY()

Możesz także użyć OBJECTPROPERTY() funkcja w Twoim WHERE klauzula.

Ta funkcja przyjmuje dwa argumenty:identyfikator obiektu i właściwość. Identyfikator obiektu może być identyfikatorem tabeli, a właściwością może być IsUserTable , który określa, czy obiekt jest tabelą systemową.

Dlatego możesz zrobić coś takiego:

USE Music;
SELECT COUNT(*) AS [Number of User Tables]
FROM sys.objects 
WHERE OBJECTPROPERTY(object_id, 'IsUserTable') = 1;

Wynik:

+-------------------------+
| Number of User Tables   |
|-------------------------|
| 4                       |
+-------------------------+

Opcja 5 – INFORMACJE_SCHEMA.TABELI

Ta opcja wysyła zapytanie do INFORMATION_SCHEMA.TABLES widok schematu informacji. Ten widok zwraca zarówno widoki, jak i tabele, więc musisz filtrować według TABLE_TYPE = 'BASE TABLE' zwrócić tylko tabele.

USE Music;
SELECT COUNT(*) AS [Number of User Tables]
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE';

Wynik:

+-------------------------+
| Number of User Tables   |
|-------------------------|
| 4                       |
+-------------------------+

Jeśli chcesz sprawdzić liczbę tabel systemowych, zobacz 3 sposoby liczenia liczby tabel systemowych w SQL Server.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskaj uprawnienia do kolumn dla tabeli w SQL Server przy użyciu T-SQL:sp_column_privileges

  2. Filtruj według klauzuli wyjściowej sql

  3. Zwróć wszystkie klucze obce, które odwołują się do danej tabeli w SQL Server

  4. 6 sposobów łączenia ciągu i liczby w SQL Server

  5. FOR XML PATH(''):Uciekanie znaków specjalnych