Tengo un código SQL que debe ejecutarse si existe una vista determinada en una base de datos. ¿Cómo haría para verificar si existe la Vista?
EDITAR: El DBMS que se usa es Microsoft SQL Server
Tengo un código SQL que debe ejecutarse si existe una vista determinada en una base de datos. ¿Cómo haría para verificar si existe la Vista?
EDITAR: El DBMS que se usa es Microsoft SQL Server
PARA SERVIDOR SQL
IF EXISTS(select * FROM sys.views where name = '')
sys.schema
aquí también.Ya hay muchas formas especificadas anteriormente, pero falta una de mis favoritas ...
DONDE
nView
está el nombre de la vistaACTUALIZACIÓN 2017-03-25: como @hanesjw sugirió eliminar un uso de Procedimiento de tienda en
P
lugar deV
como el segundo argumento deOBJECT_ID
fuente
Esta es la forma más portátil y menos intrusiva:
Editar: esto funciona en SQL Server, y no requiere que se una
sys.schemas
para obtener el esquema de la vista. Esto es menos importante si todo lo esdbo
, pero si estás haciendo un buen uso de los esquemas, entonces debes tenerlo en cuenta.Cada RDBMS tiene su propia pequeña forma de verificar metadatos como este, pero en
information_schema
realidad es ANSI, y creo que Oracle y aparentemente SQLite son los únicos que no lo admiten de alguna manera.fuente
fuente
Para las personas que comprueban la existencia para descartar,
View
use esteDesde
SQL Server 2016 CTP3
usted puede usar nuevas declaraciones DIE en lugar de grandesIF
envoltoriossintaxis
Consulta :
Más información aquí.
fuente
si es Oracle, usaría la tabla "all_views".
Realmente depende de tus dbms.
fuente
Si desea verificar la validez y consistencia de todas las vistas existentes, puede usar la siguiente consulta
fuente
EN SQL Server,
fuente
Para ampliar la respuesta de Kevin.
fuente
Puede verificar la disponibilidad de la vista de varias maneras
PARA SERVIDOR SQL
use sys.objects
usar sysobjects
use sys.views
use INFORMATION_SCHEMA.VIEWS
usar OBJECT_ID
use sys.sql_modules
fuente