결과 업데이트 규칙(Visual Database Tools)
적용 대상: SQL Server
대부분의 경우 결과 창에 표시되는 결과 집합을 업데이트할 수 있습니다. 그러나 경우에 따라서는 할 수 없습니다.
일반적으로 결과를 업데이트하려면 쿼리 및 뷰 디자이너에 테이블의 행을 고유하게 식별할 수 있는 충분한 정보가 있어야 합니다. 예를 들어 쿼리에 출력 목록의 기본 키가 포함되어 있는 경우입니다. 또한 데이터베이스를 업데이트할 수 있는 충분한 권한이 있어야 합니다.
쿼리가 뷰를 기반으로 하는 경우 쿼리를 업데이트할 수 있습니다. 뷰 자체가 아니라 뷰의 원본으로 사용하는 테이블에 적용된다는 점을 제외하면 동일한 지침이 적용됩니다.
참고 항목
쿼리 및 뷰 디자이너는 보기에 따라 결과 집합을 업데이트할 수 있는지 여부를 미리 확인할 수 없습니다. 따라서 모든 뷰를 업데이트할 수 없는 경우에도 모든 뷰를 표시합니다.
다음 테이블에는 결과 창에서 쿼리 결과를 업데이트할 수 있고 업데이트하지 못할 수 있는 특정 인스턴스가 요약되어 있습니다. 대부분의 경우 사용하는 데이터베이스는 쿼리 결과를 업데이트할 수 있는지 여부를 결정합니다.
쿼리 | 결과를 업데이트할 수 있나요? |
---|---|
출력 목록에 기본 키가 있는 테이블 하나를 기반으로 하는 쿼리 | 예(아래 항목은 예외) |
고유 인덱스가 없고 기본 키가 없는 테이블을 기반으로 하는 쿼리 | 쿼리와 데이터베이스에 따라 다릅니다. 일부 데이터베이스는 레코드를 고유하게 식별하는 데 충분한 정보를 사용할 수 있는 경우 업데이트를 허용합니다. |
조인되지 않은 여러 테이블을 기반으로 하는 쿼리 | 아니요. |
데이터베이스에서 읽기 전용으로 표시된 데이터를 기반으로 하는 쿼리 | 아니요. |
제약 조건이 없는 하나의 테이블이 포함된 뷰를 기반으로 하는 쿼리 | 예(아래 항목은 예외) |
일 대 일 관계로 조인된 테이블을 기반으로 하는 쿼리 | 예(아래 항목은 예외) |
일 대 다 관계로 조인된 테이블을 기반으로 하는 쿼리 | 일반적으로 업데이트 가능 |
다 대 다 관계가 있는 세 개 이상의 테이블을 기반으로 하는 쿼리 | 아니요. |
업데이트 권한이 부여되지 않은 테이블을 기반으로 하는 쿼리 | 삭제할 수 있지만 업데이트할 수 없음 |
삭제 권한이 부여되지 않은 테이블을 기반으로 하는 쿼리 | 업데이트할 수 있지만 삭제할 수 없음 |
집계 쿼리 | 아니요. |
합계 또는 집계 함수를 포함하는 하위 쿼리를 기반으로 하는 쿼리 | 아니요. |
중복 행을 제외하는 DISTINCT 키워드를 포함하는 쿼리 | 아니요. |
FROM 절에 테이블을 반환하는 사용자 정의 함수 및 여러 개의 select 문이 들어 있는 사용자 정의 함수를 포함하는 쿼리 | 아니요. |
FROM 절에 인라인 사용자 정의 함수를 포함하는 쿼리 | 예. |
또한 쿼리 결과에서 특정 열을 업데이트하지 못할 수도 있습니다. 다음 목록에는 결과 창에서 업데이트할 수 없는 특정 유형의 열이 요약되어 있습니다.
식을 기반으로 하는 열
스칼라 사용자 정의 함수를 기반으로 하는 열
다른 사용자가 삭제한 행 또는 열
다른 사용자가 잠근 행 또는 열(잠긴 행은 보통 잠금 해제하면 바로 업데이트할 수 있음)
타임스탬프 또는 BLOB 열