Error-Msg-4145, Ebene 15, Status 1, Ein Ausdruck von nicht-boolschen Typ
Wenn ich versuche, diese Anweisung auszuführen, bekomme ich diese Fehlermeldung:
Msg 4145, Ebene 15, Status 1, Prozedur tr_check_qty, Zeile 8
Ein Ausdruck der nicht-booleschen Typs in einem Kontext, in dem eine Bedingung erwartet wird, in der Nähe von 'BEGIN'
Habe ich diese Fehlermeldung vor, aber ich kann nicht herausfinden, wie es zu lösen ist diese Zeit. Ich hatte sogar jemanden, der Programme für einen lebendigen Blick auf diese, und während er war erschöpft und beschäftigt, er konnte Sie nicht finden, ein Problem mit meiner syntax. Hilfe!!!
CREATE TRIGGER tr_check_qty
ON order_details
FOR INSERT, UPDATE
AS
IF (SELECT quantity_in_stock
FROM products
WHERE quantity_in_stock >= units_on_order)
BEGIN
PRINT 'Insert/Update Not Allowed: quantity_in_stock less than units_on_order.'
ROLLBACK TRANSACTION
END;
GO
Okay, so kann ich diese Anweisung auszuführen jetzt:
CREATE TRIGGER tr_check_qty
ON order_details
FOR INSERT, UPDATE
AS
IF EXISTS ( SELECT COUNT(inserted.order_id)
FROM inserted
INNER JOIN products ON products.product_id=inserted.product_id
WHERE inserted.quantity>products.quantity_in_stock)
BEGIN
PRINT 'Insert/Update Not Allowed: quantity_in_stock less than units_on_order.'
ROLLBACK TRANSACTION
END;
GO
Aber ich bin jetzt immer diese Fehlermeldung:
Msg 245, Ebene 16, Status 1, Zeile 1
Fehler bei der Konvertierung beim konvertieren den varchar-Wert 'Anzahl' in den int-Datentyp.
Wenn ich versuche excecute dieser Anweisung folgenden trigger:
UPDATE order_details
SET quantity=30
WHERE order_id=10044 AND product_id=7;
GO
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre
if
- Anweisung hat keinen Vergleich. Vielleicht meinst du etwas wie dieses:Sehen, wenn Zeilen zurückgegeben werden.
Ich glaube, Sie brauchen, um die Referenz der eingefügten Zeilen auch, wie hier