Ver Mensaje Individual
  #5 (permalink)  
Antiguo 23/04/2014, 10:12
lapitufa1984
 
Fecha de Ingreso: mayo-2013
Mensajes: 10
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Reemplazar datos BBDD por otro

Así también lo he intentado, de hecho tengo el siguiente script:

Código SQL:
Ver original
  1. DECLARE @TextoBuscado NVARCHAR(MAX);
  2. DECLARE @Objeto VARCHAR(128);
  3. DECLARE @TextoActual NVARCHAR(MAX);
  4. DECLARE @Linea INT;
  5.  
  6. SET @TextoBuscado = 'BBDD1'
  7.  
  8. DECLARE @Busqueda TABLE
  9. (
  10.       Objeto VARCHAR(128),
  11.       Linea INT,
  12.       Texto NVARCHAR(MAX)
  13. );
  14. DECLARE @Texto TABLE
  15. (
  16.       Texto NVARCHAR(MAX)
  17. );  
  18.  
  19. DECLARE CR_OBJETOS CURSOR FOR
  20.       SELECT
  21.             name
  22.       FROM
  23.             SYSOBJECTS
  24.       WHERE
  25.             XTYPE IN('P', 'FN', 'V', 'U'); --P: Stored Procedures FN: User-Defined Functions V: View U: User Table
  26.  
  27. OPEN CR_OBJETOS;
  28.  
  29. FETCH NEXT FROM CR_OBJETOS INTO @Objeto;
  30.  
  31. WHILE @@FETCH_STATUS = 0  
  32. BEGIN  
  33.      
  34.       SET @Linea = 1;
  35.      
  36.       DELETE FROM @Texto;
  37.      
  38.       INSERT INTO @Texto
  39.       EXEC SP_HELPTEXT @Objeto;
  40.      
  41.       DECLARE CR_TEXTO CURSOR FOR
  42.             SELECT * FROM @Texto;
  43.      
  44.       OPEN CR_TEXTO;
  45.      
  46.       FETCH NEXT FROM CR_TEXTO INTO @TextoActual;
  47.      
  48.       WHILE @@FETCH_STATUS = 0  
  49.       BEGIN
  50.      
  51.             IF @TextoActual LIKE '%'+@TextoBuscado+'%'
  52.             BEGIN
  53.  
  54.                   INSERT INTO @Busqueda
  55.                   (
  56.                         Objeto,
  57.                         Linea,
  58.                         Texto
  59.                   )
  60.                   VALUES
  61.                   (
  62.                         @Objeto,
  63.                         @Linea,
  64.                         @TextoActual
  65.                   );
  66.            
  67.             END;
  68.            
  69.             SET @Linea = @Linea +1;
  70.            
  71.             FETCH NEXT FROM CR_TEXTO INTO @TextoActual;
  72.      
  73.       END;
  74.       CLOSE CR_TEXTO;
  75.       DEALLOCATE CR_TEXTO;
  76.      
  77.       FETCH NEXT FROM CR_OBJETOS INTO @Objeto;
  78. END;
  79.  
  80. CLOSE CR_OBJETOS;
  81. DEALLOCATE CR_OBJETOS;
  82.  
  83. 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.

Última edición por gnzsoloyo; 23/04/2014 a las 10:27 Razón: Usar HIGHLIGHT "SQL" por favor.