Ich habe eine gespeicherte Prozedur, die eine Reihe von Parametern enthält. Sie werden niemals alle Werte enthalten, einige werden null sein.Ignorieren von Anweisungen basierend auf Nullparametern in einer gespeicherten Prozedur
Wie ignoriere ich diese INSERT-Anweisungen, wenn die Parameter null sind?
Mit firebox für firefox sagt es mir, dass meine Datenbankspalten keine Nullen enthalten können, weshalb ich glaube, dass ich diese gespeicherte Prozedur falsch codiert habe (ich benutze jQuery ajax und einen Webdienst, um mit dieser gespeicherten Prozedur zu kommunizieren)).
ALTER PROCEDURE dbo.Vehicle_InsertAll
@Make varchar,
@Model varchar,
@SubModel varchar,
@Liter decimal,
@Cylinder varchar,
@Fuel varchar,
@FuelDel varchar,
@Asp varchar,
@EngDesg varchar
AS
IF @Make IS NOT NULL
BEGIN
INSERT INTO VehicleMakes (VehicleMake) VALUES(@Make)
END
IF @Model IS NOT NULL
BEGIN
INSERT INTO VehicleModels (Name) VALUES(@Model)
END
IF @SubModel IS NOT NULL
BEGIN
INSERT INTO VehicleSubModels (Name) VALUES(@SubModel)
END
IF @Liter IS NOT NULL
BEGIN
INSERT INTO VehicleLiters (Liters) VALUES(@Liter)
END
IF @Cylinder IS NOT NULL
BEGIN
INSERT INTO VehicleCylinders (Cylinders) VALUES(@Cylinder)
END
IF @Fuel IS NOT NULL
BEGIN
INSERT INTO VehicleFuel (FuelType) VALUES (@Fuel)
END
IF @FuelDel IS NOT NULL
BEGIN
INSERT INTO VehicleFuelDelivery (Delivery) VALUES (@FuelDel)
END
IF @Asp IS NOT NULL
BEGIN
INSERT INTO VehicleAspiration (Asp) VALUES (@Asp)
END
IF @EngDesg IS NOT NULL
BEGIN
INSERT INTO VehicleEngDesg (Designation) VALUES (@EngDesg)
END
RETURN
Also das Problem endete damit, dass, wenn ich den Wert eines leeren Textfelds in jquery und übergeben an meinen Web-Service mit Json, Json offenbar nicht Null-Wert an den Webservice übergeben. –