У меня есть код SQL, который необходимо выполнить, если в базе данных существует определенное представление. Как мне проверить, существует ли представление?
РЕДАКТИРОВАТЬ: Используемая СУБД - Microsoft SQL Server
У меня есть код SQL, который необходимо выполнить, если в базе данных существует определенное представление. Как мне проверить, существует ли представление?
РЕДАКТИРОВАТЬ: Используемая СУБД - Microsoft SQL Server
ДЛЯ SQL СЕРВЕРА
IF EXISTS(select * FROM sys.views where name = '')
sys.schema
, тоже захотите присоединиться к нам .Выше уже указано много способов, но один из моих любимых отсутствует ..
ГДЕ
nView
название просмотраОБНОВЛЕНИЕ 2017-03-25: поскольку @hanesjw предложил отказаться от использования процедуры хранения
P
вместоV
второго аргументаOBJECT_ID
источник
Это наиболее переносимый и наименее навязчивый способ:
Изменить: это работает на SQL Server, и вам не нужно присоединяться,
sys.schemas
чтобы получить схему представления. Это менее важно, если все в порядкеdbo
, но если вы хорошо используете схемы, вам следует помнить об этом.У каждой СУБД есть свой собственный способ проверки метаданных, подобных этой, но
information_schema
на самом деле это ANSI, и я думаю, что Oracle и, по-видимому, SQLite - единственные, которые не поддерживают его каким-либо образом.источник
источник
Для людей, проверяющих существование,
View
используйте этоИз
SQL Server 2016 CTP3
вы можете использовать новые операторы DIE вместо большихIF
обертоксинтаксис
Запрос:
Больше информации здесь
источник
если это Oracle, вы должны использовать таблицу all_views.
Это действительно зависит от ваших dbms.
источник
Если вы хотите проверить достоверность и согласованность всех существующих представлений, вы можете использовать следующий запрос
источник
В SQL Server,
источник
Проверить доступность просмотра можно разными способами
ДЛЯ SQL СЕРВЕРА
использовать sys.objects
использовать sysobjects
использовать sys.views
используйте INFORMATION_SCHEMA.VIEWS
использовать OBJECT_ID
используйте sys.sql_modules
источник
Чтобы расширить ответ Кевина.
источник