Hi, i wrote this store procedure in sqlserver but when i execute it i obtain the following error:
"Message 217, Level 16, State 1, Procedure RELAZIONE_TURNI_COMPONENTI, line 37
You have exceeded the maximum number of nesting levels allowed (32) for stored procedures, functions, triggers, or views."
What's wrong?
Thanks
USE [PianificazioneAttivita]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROC [dbo].[RELAZIONE_TURNI_COMPONENTI] (
@idReparto bigint,
@idTurnoLavoro bigint OUTPUT,
@idRep bigint OUTPUT,
@oraInizio time(7) OUTPUT,
@oraFine time(7) OUTPUT,
@idComponente bigint OUTPUT,
@nomeComponente varchar(50) OUTPUT,
@giorniAnticipo int OUTPUT)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @turno bit;
IF ( EXISTS (SELECT * FROM [PianificazioneAttivita].[dbo].[Turni_Lavoro] WHERE Id_Reparto=@idReparto))
BEGIN SET @turno='TRUE' END
ELSE
BEGIN RETURN END
DECLARE Copy_Cursor CURSOR LOCAL FOR (SELECT RL.Id_TurniLavoro,Id_Reparto,OraInizio,OraFine,C.Id_Componenti,Nome,Giorni_anticipo
FROM [PianificazioneAttivita].[dbo].[Regole_Lavoro] as RL
JOIN [PianificazioneAttivita].[dbo].[Turni_Lavoro] as TL
ON RL.Id_TurniLavoro=TL.Id_TurniLavoro and TL.Id_Reparto=@idReparto
JOIN [PianificazioneAttivita].[dbo].[Turni] as T
ON TL.Id_Turno=T.Id_Turno
JOIN [PianificazioneAttivita].[dbo].[Componenti] as C
ON C.[Id_Componenti]=RL.Id_Componenti)
OPEN Copy_Cursor
FETCH NEXT FROM Copy_Cursor INTO @idTurnoLavoro,@idRep,@oraInizio,@oraFine,@idComponente,@nomeComponente,@giorniAnticipo
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC dbo.RELAZIONE_TURNI_COMPONENTI @idReparto,@idTurnoLavoro,@idRep,@oraInizio,@oraFine,@idComponente,@nomeComponente,@giorniAnticipo
print @idTurnoLavoro
print @idRep
print @oraInizio
print @oraFine
print @idComponente
print @nomeComponente
print @giorniAnticipo
FETCH NEXT FROM Copy_Cursor INTO @idTurnoLavoro,@idRep,@oraInizio,@oraFine,@idComponente,@nomeComponente,@giorniAnticipo
END
CLOSE Copy_Cursor
DEALLOCATE Copy_Cursor
END