2014-06-05 3 views
0

삽입 및 업데이트 2 테이블을 수행하고 있습니다. 삽입 할 때 새로 만든 ID로 새 테이블을 업데이트하고 싶습니다.삽입 및 업데이트 2 테이블

insert into Event(EventName, EventManager, EventManagerShortName, EventTicketId) Values(@eventname, (select ManagerShortName From Manager where ManagerID = @managerid), @eventticketid) 

나는이 작업을 수행 할 수 있습니다 새로 만든 아이디 때마다 얻을 수있는 변수를 사용하여 다음이 일을 더 나은 방법이

set @eventId = select Eventid from Event where EventTicketId = @eventticketid 

update ScheduledEvents set EventID = @eventid, IsPaymentCompleted = true, IsCancelled = false where ScheduledDate = @scheduleddate 

있습니까?

답변

0

사용 SCOPE_IDENTITY() : http://msdn.microsoft.com/en-us/library/ms190315.aspx

이 기능은 현재 세션에서 마지막으로 생성 된 ID 값을 반환합니다.

insert into Event 
(EventName, EventManager, EventManagerShortName, EventTicketId) 
Values 
(@eventname, (select top 1 ManagerShortName From Manager where ManagerID = @managerid), @eventticketid) 


set @eventId = scope_identity() --must immediately follow the above line 

update ScheduledEvents 
set EventID = @eventid 
, IsPaymentCompleted = true 
, IsCancelled = false 
where ScheduledDate = @scheduleddate