두 번째 테이블에 데이터가 있으면 다른 테이블의 정보 Order_TruckDelivery
정보를 사용하여 테이블을 업데이트해야하는 저장 프로 시저에서 작업하고 있습니다 Basket_TruckDelivery
. 각 테이블에는 두 개의 열, int
id
및 datetime
열 TruckDeliveryDate
이 있습니다. Basket_TruckDelivery
에 현재 바구니 id에 대해 저장된 날짜가있는 경우 해당 날짜를 Order_TruckDelivery
테이블에 삽입하십시오. Basket_TruckDelivery
테이블에 무엇이든이있는 경우INSERT 저장 프로 시저에 대한 NULL 값 금지
는 지금의 INSERT
에 관계없이 실행됩니다, 이것은 Order_TruckDelivery
열에서 TruckDelveryDate
열에 대해 NULL 값을 초래한다. 나는 이런 일이 일어나지 않도록하고 싶지만 어떻게 확신 할 수는 없다. 기본적으로, 수행하고자하는 경우에만 의 TruckDeliveryDate
값이 비어 있거나 null이 아닌 경우 을 Order_TruckDelivery
테이블에 넣고 싶습니다. 그것은 나타납니다
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그냥 INSERT 검사를 위해 IF를 사용합니다. blahDATE is not NULL – Mihai
Mihai, 그게 분명히 필요한 모든 것 ... 모든 것이 이제는 잘된 것처럼 보입니다. –