首页 > 解决方案 > 我制作了一个完美运行的 sp,但是当我创建触发器来执行它时,它给出了错误

问题描述

当表 EmpSalary 列 SubDiario 中的更改并且它有效时,SP 对 EmpAttendance 表列 SubDiario 进行更新,但是当我尝试触发 sp "EXEC [dbo]。[sp_SubMensal_update] 给出错误

超出最大存储过程、函数、触发器或视图嵌套级别(限制 32)。

SP

    USE [MiniPayroll]
GO
/****** Object:  StoredProcedure [dbo].[SubMensal_update]    Script Date: 14-04-2021 15:46:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:      <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[SubMensal_update]


    
AS
BEGIN
    update dbo.EmpAttendance set 
   EmpAttendance.SubDiario= EmpSalary.SubDiario
from dbo.EmpSalary 
join EmpAttendance   on EmpSalary.EmpId=EmpAttendance.EmpId 
where EmpAttendance.time_registered > getdate() -1


END

触发

    USE [MiniPayroll]
GO
/****** Object:  Trigger [dbo].[update_SubMensal]    Script Date: 14-04-2021 16:32:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:      <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER TRIGGER [dbo].[update_SubMensal]
   ON  [dbo].[EmpAttendance]
AFTER INSERT,UPDATE,DELETE AS  BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

   EXEC [dbo].[SubMensal_update]
END

谢谢

标签: sql-servertsqltriggers

解决方案


推荐阅读