2013-04-25 5 views
3

TripStopOrder 테이블에서 StopTypeCode = Drop 인 TripStop 테이블의 ActualArrivalDate 및 ActualDepartureDate를 업데이트 할 수있는 저장 프로 시저를 만들려고합니다.저장 프로 시저 만들기

Create Proc spUpdateTable 
@OrderID int, @ArrivalDate datetime, @DepartureDate datetime 

As 

Begin 

    Begin Transaction 
    Select * From dbo.TripStopOrder 
    Join dbo.TripStop ON dbo.TripStopOrder.TripStopID = dbo.TripStop.TripStopID 
    Where OrderID = ''and StopTypeCode ='Drop' 

이 레코드를 찾으면 TripStopId를 가져 와서 Update 문으로 전달해야합니다. 잘 모르겠습니다 ... 임시 테이블을 사용하여 다른 Select 문을 실행하여 TripStopID를 선택할 수 있습니까?

Update dbo.TripStop SET ArrivalDate='',DepartureDate='' 
    Where TripStopID = '' 

End 
Commit 

모든 아이디어 나 제안을 주시면 감사하겠습니다. ~ 신참 ~

당신은 @TripStopId 같은 변수에 값을 할당 할 수 있습니다
+0

저장합니다 TripStopId 임시 변수에 다음 예를 들어, 업데이트에 사용 @v_tripstopid = tripstopid 선택 dbo.TripStopOrder에서 가입 dbo.TripStop 켜기 dbo.TripStopOrder.TripStopID = dbo.TripStop.TripStopID 여기서 OrderID = ''및 StopTypeCode = 'Drop'업데이트를 사용하여 업데이트 dbo.TripStop SET ArrivalDate = ', DepartureDate =' ' TripStopID = #v_tripstopid – Satya

+1

[SQL Server에서 JOIN을 사용하여 테이블을 업데이트 하시겠습니까?] (http://stackoverflow.com/questions/1604091/update-a-table-using-join) -in-sql-server) –

답변

2

대신 선택한 다음 UPDATE를 수행하는, 단지 변경하려면 WHERE 당신의 UPDATE 문에 절 :

WHERE TripStopID = (SELECT T.TripStopID FROM TripStopOrder O 
INNER JOIN TripStop T ON O.TripStopID = T.TripStopID 
WHERE OrderID = @OrderID AND StopTypeCode = 'Drop') 
+0

감사합니다. 이것은 내가해야 할 일을 정확하게 수행합니다. – MinnesotaMom

+0

여러분을 환영합니다! 도움이된다면 대답으로 표시하십시오. – Melanie

4

:

DECLARE @TripStopId INT 

Select @TripStopid = TripStopId 
From dbo.TripStopOrder 
Join dbo.TripStop ON dbo.TripStopOrder.TripStopID = dbo.TripStop.TripStopID 
Where OrderID = ''and StopTypeCode ='Drop' 

그런 다음 당신은 당신의 UPDATE 문에서 사용할 수 있습니다.

Update dbo.TripStop SET ArrivalDate='',DepartureDate='' 
Where TripStopID = @TripStopId 
+0

감사합니다. 그것은 내가하려고했던 것보다 훨씬 간단합니다. – MinnesotaMom

+0

@ user2315851 - 문제 없습니다. 다행스럽게도 도움이 될 수 있습니다. :) 이것이 도움이된다면 답으로 표시하십시오. –

관련 문제