Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

"Se superó el nivel máximo de anidamiento de vistas......"

Estas en el tema de "Se superó el nivel máximo de anidamiento de vistas......" en el foro de SQL Server en Foros del Web. Mo da este error al ejecutar un procedimiento almacenado (que es un cursor) He intentado buscar documentación sobre este error pero encontré poca cosa Me ...
  #1 (permalink)  
Antiguo 26/05/2009, 04:04
Avatar de izar  
Fecha de Ingreso: enero-2004
Mensajes: 519
Antigüedad: 20 años, 3 meses
Puntos: 1
"Se superó el nivel máximo de anidamiento de vistas......"

Mo da este error al ejecutar un procedimiento almacenado (que es un cursor)

He intentado buscar documentación sobre este error pero encontré poca cosa

Me podriais decir mas o menos por donde tirar?

Gracias
  #2 (permalink)  
Antiguo 26/05/2009, 06:02
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
Respuesta: "Se superó el nivel máximo de anidamiento de vistas......"

posiblemente tengas un procedimiento recursivo..

puedes postear algo de tu code, estoy seguro que te ayudaran a realizar los ajustes necesarios..


Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 26/05/2009, 07:01
Avatar de izar  
Fecha de Ingreso: enero-2004
Mensajes: 519
Antigüedad: 20 años, 3 meses
Puntos: 1
Respuesta: "Se superó el nivel máximo de anidamiento de vistas......"

Código:
ALTER PROCEDURE [dbo].[usp_Reparar_temporales]
	-- Add the parameters for the stored procedure here
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
    DECLARE @T varchar(255),@C varchar(255) ,@ss varchar(255), @control integer
        	set @control=0
 --print N'Illegal value : '+@control
	DECLARE Table_Cursor CURSOR FOR SELECT a.name,b.name FROM sysobjects a,syscolumns b
	WHERE a.id=b.id AND a.xtype='u' AND (a.name like '''temp_%''') 
    OPEN Table_Cursor
	FETCH NEXT FROM Table_Cursor INTO @T,@C
	WHILE(@@FETCH_STATUS=0)
	BEGIN
		set @control=@control+1
	  EXEC('UPDATE '+@T+' SET '+@C+'=LTRIM(RTRIM(REPLACE('+@C+',''|'' ,'''')))')

     -- EXEC('UPDATE temp_Consumo_descrip SET Descripcion=LTRIM(RTRIM(REPLACE(temp_Consumo_descrip.Descripcion,''Local/Tokikoa |'' ,''Lacal'')))')
	FETCH NEXT FROM Table_Cursor INTO @T,@C
	END


  CLOSE Table_Cursor
 DEALLOCATE Table_Cursor 
END

exec usp_Reparar_temporales
  #4 (permalink)  
Antiguo 26/05/2009, 07:42
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 9 meses
Puntos: 39
Respuesta: "Se superó el nivel máximo de anidamiento de vistas......"

Lo único que yo veo raro es:
1. @control integer. Cambialo por int
2. a.name like '''temp_%'''. No tienes apostrofes demás?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:13.