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

前端 未结 10 1701
无人共我
无人共我 2021-01-31 07:00

I have some SQL code that needs to be executed if a certain View exists in a database. How would I go about checking if the View exists?

EDIT: The DBMS being used is Mic

10条回答
  •  长情又很酷
    2021-01-31 07:29

    You can check the availability of the view in various ways

    FOR SQL SERVER

    use sys.objects

    IF EXISTS(
       SELECT 1
       FROM   sys.objects
       WHERE  OBJECT_ID = OBJECT_ID('[schemaName].[ViewName]')
              AND Type_Desc = 'VIEW'
    )
    BEGIN
        PRINT 'View Exists'
    END
    

    use sysobjects

    IF NOT EXISTS (
       SELECT 1
       FROM   sysobjects
       WHERE  NAME = '[schemaName].[ViewName]'
              AND xtype = 'V'
    )
    BEGIN
        PRINT 'View Exists'
    END
    

    use sys.views

    IF EXISTS (
       SELECT 1
       FROM sys.views
       WHERE OBJECT_ID = OBJECT_ID(N'[schemaName].[ViewName]')
    )
    BEGIN
        PRINT 'View Exists'
    END
    

    use INFORMATION_SCHEMA.VIEWS

    IF EXISTS (
       SELECT 1
       FROM   INFORMATION_SCHEMA.VIEWS
       WHERE  table_name = 'ViewName'
              AND table_schema = 'schemaName'
    )
    BEGIN
        PRINT 'View Exists'
    END
    

    use OBJECT_ID

    IF EXISTS(
       SELECT OBJECT_ID('ViewName', 'V')
    )
    BEGIN
        PRINT 'View Exists'
    END
    

    use sys.sql_modules

    IF EXISTS (
       SELECT 1
       FROM   sys.sql_modules
       WHERE  OBJECT_ID = OBJECT_ID('[schemaName].[ViewName]')
    )
    BEGIN
       PRINT 'View Exists'
    END
    

提交回复
热议问题