2013-01-06 2 views
0

나는 c1, c2 및 c3의 세 열이있는 SQL Table_A를 사용합니다. c1과 c2가이 테이블의 기본 키를 구성합니다.SQL : 저장 프로 시저를 업데이트하여 복합 기본 키로 테이블을 업데이트하십시오.

이제는 다른 TableBB에서 c1 값이 기본 값이며 전달 된 매개 변수와 c1 값이 일치하는 테이블 A의 행을 업데이트하려고합니다.

어떻게 할 수 있습니까? 내가 사용하는 코드는 오류가 발생합니다.

create procedure sp_update 
      @c1 char(20), 
      @c3 char(20) 
    AS 

    UPDATE Table_A 
      SET 
      C3 = @c3 
    WHERE C1 = @c1 

고맙습니다. 테이블이 "표 A"를 호출하면

+0

당신의 오류 메시지가 무엇입니까? – BellevueBob

+0

PRIMARY KEY 제약 조건 'PK__Table_A__85DC13D870B3A6A6'위반. 개체 'dbo.Table_A'에 중복 키를 삽입 할 수 없습니다. 명세서가 종료되었습니다. – user1889838

+0

해당 테이블에 ** 트리거 **가 있습니까? 당신이'UPDATE'를 할 때 INSERT에 대한 에러가 발생하면 약간의 버그가있는 것 같습니다 .... –

답변

0

, 시도 : 당신이 당신의 테이블에 "A"를 앨리어싱 것 같은

UPDATE [Table A] 

그렇지, 그것은 보인다. 그러나 update 절에서 별명을 지정할 수는 없습니다. 그래서이를 변경 :

UPDATE YourTable A 

에 :

UPDATE YourTable 
관련 문제