Eu tenho algum código SQL que precisa ser executado se uma certa exibição existir em um banco de dados. Como eu verificaria se a Visualização existe?
EDIT: O DBMS usado é o Microsoft SQL Server
Eu tenho algum código SQL que precisa ser executado se uma certa exibição existir em um banco de dados. Como eu verificaria se a Visualização existe?
EDIT: O DBMS usado é o Microsoft SQL Server
PARA SERVIDOR SQL
IF EXISTS(select * FROM sys.views where name = '')
sys.schema
aqui também.Já existem muitas maneiras especificadas acima, mas uma das minhas favoritas está ausente.
ONDE
nView
é o nome da visualizaçãoATUALIZAÇÃO 25/03/2017: como @hanesjw sugeriu descartar um uso do procedimento de armazenamento em
P
vez deV
como o segundo argumento deOBJECT_ID
fonte
Essa é a maneira mais portátil e menos invasiva:
Editar: isso funciona no SQL Server e não exige que você participe
sys.schemas
para obter o esquema da exibição. Isso é menos importante se tudo estiver bemdbo
, mas se você estiver fazendo bom uso de esquemas, lembre-se disso.Cada RDBMS tem sua própria maneira de verificar metadados como esse, mas
information_schema
na verdade é ANSI, e acho que Oracle e aparentemente SQLite são os únicos que não o suportam de alguma maneira.fonte
fonte
Para as pessoas que verificam a existência abandonar,
View
use esteDesde
SQL Server 2016 CTP3
que você pode usar novas DIE declarações em vez de grandesIF
embalagenssintaxe
Inquerir :
Mais informações aqui
fonte
se for Oracle, você usaria a tabela "all_views".
Realmente depende dos seus dbms.
fonte
Se você deseja verificar a validade e consistência de todas as visualizações existentes, pode usar a seguinte consulta
fonte
No SQL Server,
fonte
Para expandir a resposta de Kevin.
fonte
Você pode verificar a disponibilidade da visualização de várias maneiras
PARA SERVIDOR SQL
use sys.objects
use sysobjects
use sys.views
use INFORMATION_SCHEMA.VIEWS
use OBJECT_ID
use sys.sql_modules
fonte