Así también lo he intentado, de hecho tengo el siguiente script:
Código SQL:
Ver originalDECLARE @TextoBuscado NVARCHAR(MAX);
DECLARE @Objeto VARCHAR(128);
DECLARE @TextoActual NVARCHAR(MAX);
DECLARE @Linea INT;
SET @TextoBuscado = 'BBDD1'
DECLARE @Busqueda TABLE
(
Objeto VARCHAR(128),
Linea INT,
Texto NVARCHAR(MAX)
);
DECLARE @Texto TABLE
(
Texto NVARCHAR(MAX)
);
DECLARE CR_OBJETOS CURSOR FOR
SELECT
name
FROM
SYSOBJECTS
WHERE
XTYPE IN('P', 'FN', 'V', 'U'); --P: Stored Procedures FN: User-Defined Functions V: View U: User Table
OPEN CR_OBJETOS;
FETCH NEXT FROM CR_OBJETOS INTO @Objeto;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @Linea = 1;
DELETE FROM @Texto;
INSERT INTO @Texto
EXEC SP_HELPTEXT @Objeto;
DECLARE CR_TEXTO CURSOR FOR
SELECT * FROM @Texto;
OPEN CR_TEXTO;
FETCH NEXT FROM CR_TEXTO INTO @TextoActual;
WHILE @@FETCH_STATUS = 0
BEGIN
IF @TextoActual LIKE '%'+@TextoBuscado+'%'
BEGIN
INSERT INTO @Busqueda
(
Objeto,
Linea,
Texto
)
VALUES
(
@Objeto,
@Linea,
@TextoActual
);
END;
SET @Linea = @Linea +1;
FETCH NEXT FROM CR_TEXTO INTO @TextoActual;
END;
CLOSE CR_TEXTO;
DEALLOCATE CR_TEXTO;
FETCH NEXT FROM CR_OBJETOS INTO @Objeto;
END;
CLOSE CR_OBJETOS;
DEALLOCATE CR_OBJETOS;
SELECT * FROM @Busqueda;
Pero en algunos objetos la línea (EXEC SP_HELPTEXT @Objeto;) me da el siguiente error:
(0 filas afectadas)
Mens 15009, Nivel 16, Estado 1, Procedimiento sp_helptext, Línea 54
El objeto 'User' no existe en la base de datos 'BBDD1' o no es válido para esta operación.
He revisado todos los objetos que dan problemas y si existen en la BBDD, así que me he quedado atascada en ese punto.