Saltar al contenido

Buscar una tabla o Documentar en SQL Server

Como buscar una tabla o Documentar en Sql server 2019 o express puede realizarse por el managment studio muy facil pero otras veces con unas lineas de código puedes hacer tu vida mas simple ademas este script puede servirte para tener un reporte de los objetos creados en una base de datos. Aquí te muestro como crear un procedimiento almacenado para versiones sql server 2008 en adelante.

Los objetos de una base de datos son variados pero con el procedimiento de búsqueda podremos :

  • Buscar el texto dentro de un procedimiento
  • Buscar una tabla dentro de una base de datos
  • Buscar una cadena de texto dentro de una vista
  • ¿Cómo buscar una cadena de texto dentro de un procedimiento almacenado?
  • ¿Cómo buscar una cadena de texto dentro de una función?
Índice

    ¿Cómo todos tus procedimientos Documentar en SQL Server?

    Normalmente para encontrar que procedimiento, vista, o función para fines de documentar tu base de datos puede ser difícil y mas cuando debemos entrar a cada objeto de un esquema de base de datos .

    Con el siguiente Script podrás encontrar documentar y extraer el código de los objetos de tu base de datos con el uso del operador LIKE de sql y una variable.

    CREATE PROCEDURE dbo.sp_encuentracodigo  
     @cadenadetexto varchar(max)
    as
    AS   
    
    BEGIN  
    
    SELECT 
      
     CASE WHEN O.TYPE = 'TR' THEN 'Trigger'
      WHEN O.TYPE = 'FN' THEN 'Funcion Escalar'
      WHEN O.TYPE = 'IF' THEN 'funcion retorna una Tabla'
      WHEN O.TYPE = 'V' THEN 'Vista'
      WHEN O.TYPE = 'P' THEN 'Procedimientos almacenados'
      ELSE NULL END AS [Object Type],  
     S.NAME + '.' + O.NAME AS [Object Name],
     M.DEFINITION AS [Object Code]
    FROM
       SYS.SQL_MODULES AS m
       INNER JOIN SYS.OBJECTS AS O ON M.OBJECT_ID = O.OBJECT_ID
       INNER JOIN SYS.SCHEMAS AS S ON O.SCHEMA_ID = S.SCHEMA_ID
    WHERE
    O.TYPE IN
    ('TR', 'FN', 'IF', 'V', 'P')
    AND
    M.DEFINITION LIKE '%' + @cadenadetexto + '%'
    
    END

    En la tabla SYS.SQL_MODULES contiene la definición de todas los códigos que se utilizaron para programar los objetos como vistas, procedimientos y demás los que en conjunto con SYS.OBJECTS podremos utilizar para generar un procedimiento universal para buscar fragmentos de cadenas de codigos sql dentro una base de datos.

    Como buscar una tabla en sql sever?

    Luego de ver la tarea anterior solo nos resta entender como buscar una tabla por su nombre dentro de una base de datos utilizando codigo sql server. Para esto debemos utilizar SYS.OBJECTS la cual contiene un catalogo de todos los objetos creados.

    CREATE PROCEDURE dbo.sp_encuentraTabla

    @nombredetabla(max)

    AS

    select * from SYS.OBJECTS
    where type = ‘U’ and name like %nombre%

    Encontrar una tabla o una cadena de texto dentro de una base de datos puede ser muy util para documentar o encontrar los procedimientos , funciones o vistas que deben ser actualizados a fin de resolver una situación de rendimiento dentro de una base de datos. Me gustaria saber en que otras situaciones utilizaras estos scripts de base de datos sql. Dejanos tu comentario si te fueron de utilidad

    Hasta la proxima !!!

    Bye :D!!