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
InformationsquelleAutor isolatedhowl | 2012-12-10
Schreibe einen Kommentar