Извините заранее за мой английский, вот проблема: как я не могу думать о логике триггера, в нижней строке, что есть 2 таблицы:триггер Update, добавьте не работает должным образом
- список материалов
- прибытие Журнал
при добавлении записей в таблицу в журнале прихода действует триггер, который проверяет, если таблица пуста добавить новую запись (материал, количество на складе), если в таблице есть записи, обновите их при условии, что Material = (select the part Name From inserted)
, но если в таблице есть записи и Material != select the part Name From inserted)
, то добавьте новую запись.
Вот код триггера:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Trigger [dbo].[Application Log Sheet]
ON [dbo].[Parish magazine]
FOR INSERT
AS
DECLARE @a INT;
DECLARE @b int;
SELECT @a = COUNT(*)
FROM Bill of materials
IF @a > 0
BEGIN
UPDATE Vedomostithe
SET Kolichestvennogo = the Number of stock + (select Quantity from inserted)
WHERE Material = (select the part Name from inserted)
END
ELSE IF @a >= 0
INSERT INTO Bill of material(Material, Quantity in stock)
SELECT the part Name, Number
FROM the arrival Journal
WHERE [ID] IN (SELECT [ID] FROM inserted)
Таблица спецификация:
create table Bill of materials
(
ID int primary key,
Material nvarchar(max),
Quantity in stock int
)
Таблица прибытия журнала:
create table Journal of the parish
(
ID int primary key,
Part name nvarchar(max),
The number of int
)
Какую версию SQL Server вы используете? –
У меня есть версия sql Server 2016 –