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

SQL Server INFORMATION_SCHEMA Widoki | Sprawdź, czy stół istnieje

Na czym polega problem?

Podczas pisania zapytań dla bazy danych, w której jesteś nowy lub często się zmienia, możesz chcieć uruchomić szybkie sprawdzenie, aby znaleźć wszystkie tabele w określonej bazie danych lub kolumny w bazie danych, albo wyszukać tabelę lub kolumnę istnieje.

Dlaczego jest to problem?

Zrozumienie schematu i zawartych w nim tabel pomaga w pisaniu wydajnego kodu SQL i pozwala uniknąć wielokrotnego uruchamiania zapytań tylko po to, aby sprawdzić, czy nazwa schematu lub nazwa kolumny jest poprawna.

Ten samouczek pomoże rozwiązać te problemy.

Korzystanie ze schematu informacyjnego

Zapytanie o metadane w źródle danych to najprostszy sposób na określenie składu tabeli, jeśli jeszcze go nie rozumiesz. Microsoft SQL Server udostępnia widok schematu informacji jako jedną z kilku metod uzyskiwania tych metadanych. Jak stwierdza ich dokumentacja pomocy technicznej, „Widoki schematu informacji zapewniają wewnętrzny, niezależny od tabeli systemowej widok metadanych programu SQL Server. Widoki schematów informacji umożliwiają aplikacjom prawidłowe działanie, chociaż w podstawowych tabelach systemowych wprowadzono istotne zmiany”.

Użyjemy kilku widoków w schemacie informacji w celu uruchomienia zapytań, które pomogą określić skład tabel w źródle danych.

Wyświetlanie TABLES i COLUMNS w bazie danych lub znajdź TABLES i COLUMNS .

To pierwsze zapytanie zwróci wszystkie tabele w bazie danych, której dotyczy zapytanie.

SELECT
  	TABLE_NAME
FROM
  	INFORMATION_SCHEMA.TABLES

Drugie zapytanie zwróci listę wszystkich kolumn i tabel w bazie danych, której dotyczy zapytanie.

SELECT
  	TABLE_NAME,
COLUMN_NAME
FROM
  	INFORMATION_SCHEMA.COLUMNS

Możesz też zapytać o tylko COLUMNS z określonej tabeli i zwróć nazwy kolumn z określonej tabeli „Album” w naszej bazie danych.

SELECT
	COLUMN_NAME
FROM
  	INFORMATION_SCHEMA.COLUMNS
WHERE
	TABLE_NAME = 'Album'

Za pomocą tego następnego zapytania możesz dowiedzieć się, czy istnieje TABLE w źródle danych, które pasuje do pewnego rodzaju parametrów wyszukiwania.

IF EXISTS(
SELECT
  			*
  		FROM
  			INFORMATION_SCHEMA.TABLES
  		WHERE
  			TABLE_NAME = 'Album'
			)
SELECT 'found' AS search_result ELSE SELECT 'not found' AS search_result;

Zapytanie zwróci słowo „znaleziono”, jeśli tabela „Album” istnieje w naszej bazie danych.

Teraz, aby pójść trochę dalej, możesz użyć tego zapytania, aby dowiedzieć się, czy istnieje COLUMN w źródle danych, które pasuje do pewnego rodzaju parametrów wyszukiwania.

IF EXISTS(
SELECT
  				*
  			FROM
  				INFORMATION_SCHEMA.COLUMNS
  			WHERE
  				COLUMN_NAME = 'Title'
				)
SELECT 'found' AS search_result ELSE SELECT 'not found' AS search_result;

Korzystanie z INFORMATION_SCHEMA widok w źródle danych może być niezawodnym sposobem określenia, co znajduje się w źródle danych podczas tworzenia zapytań.

Aby uzyskać więcej informacji na temat widoków schematów informacji o systemie Microsoft SQL Server, zapoznaj się z ich dokumentacją pomocy technicznej.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa funkcja FORMAT() w programie SQL Server (T-SQL)

  2. Jaka jest maksymalna liczba znaków przechowywanych przez nvarchar(MAX)?

  3. SQL Server - podsłuchiwanie parametrów

  4. Jak zmienić nazwę czegoś w SQL Server, co ma w nazwie nawiasy kwadratowe?

  5. 4 sposoby, aby dowiedzieć się, jakie kolumny zostaną zwrócone przez procedurę składowaną w SQL Server