Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server INFORMATION_SCHEMA Изгледи | Вижте дали таблица съществува

Какъв е проблемът?

Когато пишете заявки за база данни, в която може да сте нов или такава, която се променя често, може да искате да изпълните бърза проверка, за да намерите всички таблици в конкретна база данни или колоните в базата данни, или да потърсите дали таблица или колона съществува.

Защо това е проблем?

Разбирането на схемата и какви таблици се съдържат в нея помага за написването на ефективен SQL и помага да се избегне изпълнението на заявки многократно, само за да се види дали името на схемата или името на колоната са правилни.

Този урок ще помогне за решаването на тези проблеми.

Използване на информационната схема

Запитването на метаданни в източник на данни е най-лесният начин да определите състава на таблицата, ако вече не сте я разбрали. Microsoft SQL Server предоставя изглед на информационна схема като един от няколкото метода за получаване на тези метаданни. Както се посочва в документацията им за поддръжка, „Изгледите на информационна схема предоставят вътрешен, независим от системна таблица изглед на метаданните на SQL Server. Изгледите на информационни схеми позволяват на приложенията да работят правилно, въпреки че са направени значителни промени в основните системни таблици."

Ще използваме няколко изгледа в информационната схема, за да изпълняваме заявки, които помагат да се определи състава на таблиците в източника на данни.

За показване на TABLES и COLUMNS в базата данни или намерете TABLES и COLUMNS .

Тази първа заявка ще върне всички таблици в базата данни, към която отправяте заявка.

SELECT
  	TABLE_NAME
FROM
  	INFORMATION_SCHEMA.TABLES

Втората заявка ще върне списък с всички колони и таблици в базата данни, към която отправяте заявка.

SELECT
  	TABLE_NAME,
COLUMN_NAME
FROM
  	INFORMATION_SCHEMA.COLUMNS

Или можете също да направите заявка само за COLUMNS от конкретна таблица и върнете имената на колоните от конкретната таблица „Албум“ в нашата база данни.

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

С тази следваща заявка можете да разберете дали има или не TABLE в източника на данни, който съответства на някакъв вид параметри за търсене.

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

Заявката ще върне думата „found“, ако таблицата „Album“ съществува в нашата база данни.

Сега, за да отидете по-далеч, можете да използвате тази заявка, за да разберете дали има COLUMN в източника на данни, който съответства на някакъв вид параметри за търсене.

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

Използване на INFORMATION_SCHEMA изгледът във вашия източник на данни може да бъде надежден начин да определите какво има в източника на данни, докато изграждате заявките си.

За повече информация относно изгледите на схемата за системна информация на Microsoft 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. Най-добрият инструмент за възстановяване на SQL за 2020 г. за възстановяване на важна SQL база данни

  2. T-SQL дата и час, закръглен до най-близката минута и най-близките часове с използване на функции

  3. Как да актуализирате две таблици в един израз в SQL Server 2005?

  4. Каква е разликата между char, nchar, varchar и nvarchar в SQL Server?

  5. Не може да се свърже със SQL Server с PHP