Find All References to View

前端 未结 3 1869
野性不改
野性不改 2020-12-15 00:45

I\'ve got various databases, and what to be sure I am removing something (a view in this case) that is truly orphaned. Is the the correct SQL to be using:

S         


        
相关标签:
3条回答
  • 2020-12-15 01:06

    I am not sure but i guess you can use something like this if your view is used in some stored procedure

    SELECT *  
    FROM syscomments c  
    INNER JOIN sysobjects o ON c.id =o.id 
    WHERE text LIKE '%my_view_name%' AND xtype ='p'
    
    0 讨论(0)
  • 2020-12-15 01:12

    Your method is not fully correct. Read this article:

    http://www.mssqltips.com/tip.asp?tip=1294

    Your method will not return any result if another view uses this view.

    SQL Server 2008 has special view (sys.dm_sql_referencing_entities), here it is not that easy.

    0 讨论(0)
  • 2020-12-15 01:25

    You have one option only.

    select
        object_name(m.object_id), m.*
    from
        sys.sql_modules m
    where
        m.definition like N'%my_view_name%'
    

    syscomments and INFORMATION_SCHEMA.routines have nvarchar(4000) columns. So if "myViewName" is used at position 3998, it won't be found. syscomments does have multiple lines but ROUTINES truncates.

    0 讨论(0)
提交回复
热议问题