[MSSQL] - Buscar texto en los procedimientos almacenados

Otra semana y otra entrada, muchas veces tenemos tantos procedimientos almacenados y en algunas ocasiones perdemos de vista algunas tablas y/o vistas y cuando hacemos desarrollos empezamos tener problemas de continuidad y algunos reportes empiezan a reventar.


En esos caminos diseñe esta consulta que permite la búsqueda de palabras lo cual nos podrá llevar a buscar tablas, vistas, funciones, comentarios, etc.

USE [DIR_SOPORTE]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

BEGIN

                        DECLARE
                                               @V_SQL NVARCHAR(1000),
                                               @IDSP NVARCHAR(1000),
                                               @CUENTA INT,
                                               @v_PalabraBuscar nvarchar(250)
                                              
                        SET @v_PalabraBuscar = 'SEGMENTACION_INDIVIDUAL_DIARIA'; -- Reemplazar para buscar

                        CREATE TABLE BRR_SP_TEXTO (SP varchar(4000))
                        CREATE TABLE BRR_SP_TEXTO_NAME (SP varchar(4000))

                        DECLARE DBCC_Cursor CURSOR FOR
                                               SELECT [NAME]
                                               FROM SYSOBJECTS
                                               WHERE [XTYPE] = 'P' AND [TYPE] = 'P'
                                               ORDER BY [NAME]

                        OPEN DBCC_Cursor                
                        FETCH NEXT FROM DBCC_Cursor INTO @IDSP
                        WHILE (@@FETCH_STATUS = 0) BEGIN
                                              
                                               TRUNCATE TABLE BRR_SP_TEXTO
                                              
                                               SET @V_SQL = 'INSERT INTO BRR_SP_TEXTO EXEC (''SP_HELPTEXT '+RTRIM(LTRIM(@IDSP))+''')';
                                               EXEC SP_EXECUTESQL @V_SQL
                                              
                                               SET @CUENTA=(SELECT COUNT(1) FROM BRR_SP_TEXTO WHERE SP LIKE '%'+@v_PalabraBuscar+'%')

                                               IF (@CUENTA>0) BEGIN
                                              
                                                                       INSERT INTO BRR_SP_TEXTO_NAME VALUES (@IDSP);
                                                                      
                                                                       SET @CUENTA = 0;
                                                                      
                                               END

                                               FETCH NEXT FROM DBCC_Cursor INTO @IDSP
                        END

                        CLOSE DBCC_Cursor
                        DEALLOCATE DBCC_Cursor

                        DELETE
                        FROM BRR_SP_TEXTO_NAME
                        WHERE SP IS NULL

                        SELECT * FROM BRR_SP_TEXTO_NAME
                        DROP TABLE BRR_SP_TEXTO
                        DROP TABLE BRR_SP_TEXTO_NAME


END

SHARE

Hola a todos los que tienen los minutos de leer alguna de mis entradas en este blog, soy Ingeniero de Sistemas y tengo más de 15 años de experiencia en el desarrollo de sistemas de información para una compañia dedicada a las telecomunicaciones. Si alguno de mis entradas te ha servido tanto como a mi dale compartir en tu red social favorita (que no cuesta nada). Saludos desde Bogotá - Colombia

  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

0 comentarios:

Publicar un comentario