¿Cómo puedo consultar todos mis diseños de vista buscando una cadena particular en SQL Server?

Hay vistas creadas sobre la base de otras vistas del sistema en nuestra base de datos SQL Server. Puesto que otro sistema va a ser reemplazado, necesito encontrar la lista de opiniones que se construyen sobre la base de otro sistema.

Cuando abro el diseño de una vista existente que se construye en otra vista del sistema, puedo ver otro nombre del servidor del sistema.

Por lo tanto, estoy buscando una consulta que consulta todos mis diseños de vista buscando una cadena particular 'Server Name', en este caso.

¡Aprecio tu apoyo!

Pregunta hecha hace 3 años, 4 meses, 29 días - Por progprophet


3 Respuestas:

  • Vale, basado en lo que entiendo que estás buscando una String en la definición de tu vista, si ese es el caso que puedes hacer lo siguiente:

    SELECT 
        QUOTENAME(OBJECT_SCHEMA_NAME(o.object_id)) + '.' + QUOTENAME(o.name) AS [ObjectName],
        o.type_desc AS [ObjectType]
    FROM sys.objects AS o -- Will check all objects, inlcuding Views
    WHERE OBJECT_DEFINITION(o.object_id) LIKE '%cfs%' -- string in the definition
    

    Tenga en cuenta que estoy comprobando contra sís.objetos en lugar de sís.views para buscar la misma palabra clave en otros objetos como procedimientos, tablas, etc. Puedes cambiar sys.objects a sys. vistas si sólo está interesado en las vistas.

    Respondida el Dec 17, 2020 a las 16:04 - por algorithmwizard

    Votos positivos: 0 | Votos negativos: 0

  • Para buscar todas tus vistas de base de datos que contengan una cadena particular en SQL Server, puedes utilizar la siguiente consulta:

    sql
    SELECT DISTINCT o.name AS ViewName
    FROM sys.sql_modules m
    INNER JOIN sys.objects o ON m.object_id = o.object_id
    WHERE m.definition LIKE '%Server Name%'
    AND o.type = 'V'
    

    Esta consulta busca en la definición de cada vista en la base de datos el texto 'Server Name'. Te devolverá una lista de nombres de todas las vistas que contienen dicha cadena en su definición.

    Es importante tener en cuenta que esta consulta buscará la cadena de texto 'Server Name' exactamente como está escrita, por lo que asegúrate de que coincide con el texto que estás buscando. Si necesitas buscar de forma insensible a mayúsculas y minúsculas, puedes utilizar la función UPPER() en ambos lados de la comparación de la cadena.

    Espero que esta información te sea de ayuda. ¡Déjame saber si tienes alguna otra pregunta!

    Respondida el Dec 18, 2020 a las 16:06 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • 
    SELECT
        name
    FROM
        sys.views
    WHERE
        definition LIKE '%Server Name%';
    

    Respondida el Dec 18, 2020 a las 16:17 - por Gemini

    Votos positivos: 0 | Votos negativos: 0