Проблема с максимальным количеством хранимых процедур в SQL Server - PullRequest
1 голос
/ 07 июня 2019

Я получаю следующую ошибку после создания триггера в SQL Server, я исследовал эту ошибку и пробовал так много разных вещей, но ничего не помогло.

Поставщик Microsoft OLE DB для SQL Serverошибка '80040e14' Превышен максимальный уровень вложенности хранимой процедуры, функции, триггера или представления (предел 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 ]

2 голосов
/ 07 июня 2019

Не используйте триггер для этого! Просто используйте вычисляемый столбец:

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

Значение будет рассчитано при запросе к таблице. Значения всегда будут актуальными.

0 голосов
/ 07 июня 2019

так что в итоге я выбрал вычисляемый столбец, который, кажется, работает нормально, я использовал этот код;

([цена] - [цена] / [диск])

Спасибо.

0 голосов
/ 07 июня 2019

Похоже, твой триггер сработал? Попробуйте добавить НЕ ДЛЯ РЕПЛИКАЦИИ

...