How can I check if a View exists in a Database? How can I check if a View exists in a Database? database database

How can I check if a View exists in a Database?


FOR SQL SERVER

IF EXISTS(select * FROM sys.views where name = '')


There are already many ways specified above but one of my favourite is missing..

GOIF OBJECT_ID('nView', 'V') IS NOT NULL    DROP VIEW nView;GO

WHERE nView is the name of view

UPDATE 2017-03-25: as @hanesjw suggested to drop a Store Procedure use P instead of V as the second argument of OBJECT_ID

GOIF OBJECT_ID( 'nProcedure', 'P' ) IS NOT NULL     DROP PROCEDURE dbo.sprocName; GO


This is the most portable, least intrusive way:

select    count(*)from    INFORMATION_SCHEMA.VIEWSwhere    table_name = 'MyView'    and table_schema = 'MySchema'

Edit: This does work on SQL Server, and it doesn't require you joining to sys.schemas to get the schema of the view. This is less important if everything is dbo, but if you're making good use of schemas, then you should keep that in mind.

Each RDBMS has their own little way of checking metadata like this, but information_schema is actually ANSI, and I think Oracle and apparently SQLite are the only ones that don't support it in some fashion.