Bir veritabanı sınıfı alıyorum ve bu konuda tamamen kayboldum. Umarım bana yardım edebilirsin. İşte ders kitabımıza dayanarak oluşturduğum SQL tetikleyicisi. Örneklerin SQL Server 2012 tabanlı olduğunu, ancak tetiği test ettiğimde bazı sözdizimlerini tanıyamayacağını söylüyor. Bunu farklı şekilde yapmanın bir yolu var mı? SHIPMENT_ITEM
, SHIPMENT
'un bir alt öğesi ve bir M-M relationship
. Teşekkür :)Tetikleyici Oluşturma [table] MS SQL Server'da Silme
CREATE TRIGGER SHIPMENT_ITEM_SHIPMENT_DeleteCheck
ON [dbo].[DeleteShipmentItemView]
FOR DELETE
DECLARE
rowCount Int;
BEGIN
/* to determine if shipment item is last one in shipment */
SELECT Count (*) into rowCount
FROM [dbo].[SHIPMENT_ITEM]
WHERE [dbo].[SHIPMENT_ITEM].[ShipmentID] = old:[ShipmentID];
/*delte shipment item row regardless of wheter shipment is deleted */
DELETE [dbo].[SHIPMENT_ITEM]
WHERE [dbo].[SHIPMENT_ITEM].[ShipmentID] = old:[ShipmentID];
IF (rowCount = 1)
THEN
/*last shipment item in shipment, delete shipment */
DELETE [dbo].[SHIPMENT]
WHERE [dbo].[SHIPMENT].[ShipmentID] = old:[ShipmentID];
END IF;
END;
Level 15, State 1,
Procedure SHIPMENT_ITEM_SHIPMENT_DeleteCheck, Line 5 Incorrect syntax near the keyword 'SET'.
Procedure SHIPMENT_ITEM_SHIPMENT_DeleteCheck, Line 10 Incorrect syntax near the keyword 'rowCount'.
Procedure SHIPMENT_ITEM_SHIPMENT_DeleteCheck, Line 16 Incorrect syntax near 'old:'.
Procedure SHIPMENT_ITEM_SHIPMENT_DeleteCheck, Line 16 The label 'old' has already been declared. Label names must be unique within a query batch or stored procedure.
Procedure SHIPMENT_ITEM_SHIPMENT_DeleteCheck, Line 22 Incorrect syntax near 'old:'.
Procedure SHIPMENT_ITEM_SHIPMENT_DeleteCheck, Line 22 The label 'old' has already been declared. Label names must be unique within a query batch or stored procedure.
sözdizimi eski: [ShipmentId] doğru değil – FLICKER
değil t/sql yerine pl/sql? –