SQL Server最大存储过程限制问题

时间:2019-06-07 09:49:20

标签: sql sql-server oledb

在SQL Server中创建触发器后,出现以下错误,我已经研究了此错误,并尝试了许多不同的方法,但没有任何效果。

  

SQL Server错误“ 80040e14”的Microsoft OLE DB提供程序最大值   存储过程,函数,触发器或视图嵌套级别已超出   (限制为32)

USE [admin_W4F]
GO
/****** Object:  Trigger [lee2121].[discount]    Script Date: 6/7/2019     10:45:55 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [lee2121].[discount]
ON  [lee2121].[Cart]
AFTER INSERT,DELETE,UPDATE
AS 
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

update [lee2121].Cart
set totalprice2 = [lee2121].[Cart].[price] - ([lee2121].[Cart]. [price]/[lee2121].[Cart].[disc])

END

3 个答案:

答案 0 :(得分:2)

请勿为此使用触发器!只需使用计算列:

alter table [lee2121].[Cart]
    add totalprice2 (price - (price / disc);

查询表时将计算该值。这些值将始终是最新的。

答案 1 :(得分:0)

您的触发器似乎正在触发您的触发器?尝试添加NOT FOR REPLICATION

答案 2 :(得分:0)

所以最后我使用了一个看起来不错的计算列,我使用了这段代码;

([[价格]-[价格] / [光盘])

谢谢。