Désolé à l'avance pour mon anglais, voici le problème: que je ne peux pas penser à la logique de la détente, la ligne de fond est qu'il ya 2 tables:déclencheur de mise à jour, ajouter ne fonctionne pas correctement
- liste de matériel
- l'arrivée Journal
Lorsque vous ajoutez des enregistrements à une table dans le magazine de la paroisse doit utiliser un déclencheur qui vérifie si la table est vide ajouter une nouvelle entrée (matériel, quantité en stock), si la table contient des enregistrements, mettez-les à jour à la condition que le Material = (select the part Name From inserted)
, mais si la table contient des enregistrements et Material != select the part Name From inserted)
, ajoutez un nouvel enregistrement.
Voici le code du déclencheur:
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)
Tableau nomenclature:
create table Bill of materials
(
ID int primary key,
Material nvarchar(max),
Quantity in stock int
)
Table arrivée Journal:
create table Journal of the parish
(
ID int primary key,
Part name nvarchar(max),
The number of int
)
Quelle version de SQL Server ciblez-vous? –
J'ai la version de SQL Server 2016 –