2009-05-02 7 views
0

마지막으로 삽입 된 내 테이블의 열을 업데이트하려고합니다. 이 저장 프로 시저를 만들려고했습니다 :SQL 문

CREATE PROCEDURE [dbo].[msp_AssociateEvent] 
(
    @EventId int 
) 

AS 

UPDATE tblFoodMenus set 
EventID = @EventId 

Where FoodMenuID = IDENT_CURRENT(tblFoodMenus) 

그러나이 오류가 발생합니다. 잘못된 열 이름 tblFoodMenus.

IDENT_CURRENT를 올바르게 사용하고 있습니까?

PS FoodMenuID은 자동

+1

정말 하시겠습니까? 2 명의 사용자가 동시에 레코드를 추가하는 것은 어떻습니까? 롤백 (IDENT_CURRENT가 증가하지만 행을 삽입하지 않음)은 어떻습니까? 테이블이 비어 있거나 잘리는 경우 (IDENT_CURRENT는 1을 반환합니다). 나는 이것이 대부분의 경우에 좋은 생각 인 것을 볼 수 없다 .... –

답변

3

테이블 이름 따옴표

에 있어야 증가되고있는 tblFoodMenus의 기본 키
Where FoodMenuID = IDENT_CURRENT('tblFoodMenus') 
1

마크 Brackett의 의견은 바로 돈이다 - IDENT_CURRENT는 얻을 안전하지 않습니다 당신은 당신이 관심을 가지고있는 특정한 신원을 생성합니다. 거의 항상 여러분은 삽입을 수행하는 코드에서 scope_identity()을 사용하고 필요할 때마다이를 전달하려고합니다.