0
我正在研究一個存儲過程,如果第二個表有任何數據,則該存儲過程應該使用來自另一個表Basket_TruckDelivery
的信息更新表Order_TruckDelivery
。每個表中有兩列:int
id
和datetime
列,名爲TruckDeliveryDate
。如果Basket_TruckDelivery
有一個爲當前購物籃ID存儲的日期,則將該日期插入Order_TruckDelivery
表中。防止爲存儲過程插入NULL值
眼下,INSERT
會執行,無論是否有在Basket_TruckDelivery
表什麼,這導致在Order_TruckDelivery
列TruckDelveryDate
列NULL值。我想阻止這種情況發生,但我不完全確定如何。基本上,我只想執行INSERT
到Order_TruckDelivery
表中,如果Basket_TruckDelivery
中的TruckDeliveryDate
的值不爲空或爲空。
這是我迄今爲止...我沒有做什麼工作,存儲過程,所以我不知道我已經錯過了....
ALTER PROCEDURE [dbo].[SaveTruckIntoOrder]
@BasketID INT,
@OrderID INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE
@TruckDeliveryDate DATETIME
IF(EXISTS(SELECT uidBasket FROM [Basket_TruckDelivery] WHERE [uidBasket] = @BasketID))
BEGIN
SELECT
@TruckDeliveryDate = [TruckDeliveryDate]
FROM
[Basket_TruckDelivery]
WHERE
[uidBasket] = @BasketID
END
BEGIN
INSERT INTO [Order_TruckDelivery] ([uidOrder], [TruckDeliveryDate])
VALUES (@OrderID, @TruckDeliveryDate)
END
END
看來, SELECT和INSERT語句之間的END和BEGIN語句不應該在那裏。因此,INSERT語句總是在運行。 – Rono 2014-12-05 21:03:57
只需使用anotehr IF用於INSERT檢查blahDATE不爲NULL – Mihai 2014-12-05 21:04:24
Mihai,這顯然是我需要的一切......現在一切似乎都很順利。 – 2014-12-05 21:17:02