2009-12-06 5 views
1

여러 값으로 열을 업데이트해야한다는 요구 사항이 있습니다. 쿼리는 다음과 같습니다.SQL Server에서 열을 업데이트하기위한 저장 프로 시저

Update table1 set column1 = (
    select value from table2 where table1.column0 = table2.coulmn 
) 

위의 같은 요구 사항에 대한 일반화 된 저장 프로 시저가 있습니까?

+0

나는 당신이 묻는 것을 얻지 못한다. –

+0

나 기본적으로 내가 camsfolio.nav이 schcode에 따라 업데이트 할 (camsfolio.schcode = camsnav.schcode 어디 camsnav에서 camsnav.nav 선택) 정확한 쿼리 갱신 camsfolio 세트 탐색 = 보겠다. –

답변

3

"execute"문을 사용하여 문을 문자열로 작성하는 것이 부족합니다. 일반적으로 "실행"은 잠재적 주입 사격 지점이기 때문에 눈살을 찌푸리게됩니다.

1

왜 다른 테이블에서 쉽게 사용할 수있는 정보로 한 테이블을 업데이트 하시겠습니까? camsnav 테이블에 대해 업데이트를 수행하거나 삽입 또는 삭제할 때마다이 쿼리를 실행해야한다는 것을 보장하는 것처럼 보입니다. 그렇지 않으면 어떻게 동기화 할 것입니까?

UPDATE f SET nav = n.nav 
FROM camsfolio AS f 
INNER JOIN camsnav AS n 
ON f.schcode = n.schcode; 
0

SQL Server를 사용하지 않는 : 당신이 하위 쿼리는 정확히 하나 개의 행을 반환 할 것이라는 점을 보장 할 수없는 경우

또한, SQL Server 관련 독점 업데이트 형식을 사용하는 것이 더 안전하다 이런 종류의 일에 대한 "일반화 된 저장 프로 시저". 적절한 매개 변수화 된 UPDATE 문을 사용하여 작성한 자신의 SP를 작성하는 것은 전적으로 귀하에게 달려 있습니다.