在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
答案 0 :(得分:2)
请勿为此使用触发器!只需使用计算列:
alter table [lee2121].[Cart]
add totalprice2 (price - (price / disc);
查询表时将计算该值。这些值将始终是最新的。
答案 1 :(得分:0)
您的触发器似乎正在触发您的触发器?尝试添加NOT FOR REPLICATION
答案 2 :(得分:0)
所以最后我使用了一个看起来不错的计算列,我使用了这段代码;
([[价格]-[价格] / [光盘])
谢谢。