在sql server中存储过程 [英] Store Procedure in sql server
本文介绍了在sql server中存储过程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在sqlserver中写了这个存储过程但是当我执行它时我得到以下错误:
消息217,级别16,状态1,过程RELAZIONE_TURNI_COMPONENTI,第37行
您已经超过了存储过程,函数,触发器或视图允许的最大嵌套级别数(32)。
有什么问题?
谢谢< br $>
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
/****** Object: StoredProcedure [dbo].[RELAZIONE_TURNI_COMPONENTI] Script Date: 11/19/2014 09:53:57 ******/
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
推荐答案
你的嵌套SP RELAZIONE_TURNI_COMPONENTI在内部执行另一个SP,函数等
查看这个
超出最大存储过程,函数,触发器或视图嵌套级别(限制32)
这可以帮到你
error:Maximum存储过程,函数,trigg呃,或超过查看嵌套级别(限制32)? [ ^ ]
does your nested SP RELAZIONE_TURNI_COMPONENTI internally executes another SP ,function etc
check this
Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32)
This may help you
error:Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32)?[^]
这篇关于在sql server中存储过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文