다음을 통해 공유


고급 SQL 생성 옵션 대화 상자

업데이트: 2007년 11월

어댑터에 대한 SQL 문이나 저장 프로시저를 만드는 방법을 제어할 수 있습니다. 이 대화 상자는 데이터 마법사의 SQL 문 페이지에 있는 고급 옵션 단추를 클릭할 때 나타납니다. 이 대화 상자에 있는 모든 옵션은 업데이트 프로시저의 일부로 호출되는 문이나 프로시저와 관련되어 있습니다(예: CustomersTableAdapter.Update(DataTable)).

사용자 인터페이스 요소 목록

  • Insert, Update 및 Delete 문 생성
    이 옵션을 선택하면 마법사가 어댑터의 UpdateCommand, InsertCommand 및 DeleteCommand 개체에 대한 SQL 문이나 저장 프로시저를 만듭니다. 생성되는 문이나 프로시저의 세부 내용은 마법사의 쿼리 형식 선택 창에서 제어됩니다. 이 확인란을 선택하지 않으면 대화 상자의 나머지 옵션이 적용되지 않으므로 이 옵션을 사용할 수 없게 됩니다.

    일반적으로 다음과 같은 경우에는 이 확인란을 선택하지 않습니다.

    • 어댑터를 데이터 소스에서 데이터를 읽는 데에만 사용하고 데이터를 데이터 소스에 다시 쓰는 데에는 사용하지 않는 경우. 이 확인란을 선택하지 않으면 폼이나 구성 요소의 코드 양이 줄어듭니다.

    • 마법사를 마친 후 명령에 직접 채워 넣으려는 경우

    확인란을 선택하지 않았으며 UpdateCommand, InsertCommand 또는 DeleteCommand 개체에 대한 문이나 저장 프로시저가 없는 경우에는 데이터 어댑터의 Update 메서드를 호출해도 아무 것도 실행되지 않습니다.

  • 낙관적 동시성 사용
    이 옵션을 선택하면 마법사는 업데이트 중인 레코드의 모든 열 값을 데이터베이스에 있는 해당 레코드에 대해 일치시키는 WHERE 절을 포함하는 SQL 명령을 생성합니다.

    참고:

    이 옵션은 Insert, Update 및 Delete 문 생성 확인란을 선택한 경우에만 사용할 수 있습니다.

    예를 들어, 이 옵션을 사용하여 생성한 Update 문의 구문은 다음과 같습니다.

    UPDATE Customers
    SET CustomerID = ?, CompanyName = ?, Phone = ?
    WHERE (CustomerID = ?) AND (CompanyName = ?) AND 
          (Phone = ? OR ? IS NULL AND Phone IS NULL);
    

    이 확인란을 선택하지 않은 경우의 구문은 다음과 같습니다.

    UPDATE Customers
    SET CustomerID = ?, CompanyName = ?, Phone = ?
    WHERE (CustomerID = ?)
    

    각 열 값을 검사하면 열이 변경될 때 명령 오류가 발생합니다. 이러한 오류는 데이터 집합으로 데이터를 읽어 들인 다음에 다른 사용자가 레코드를 변경하는 경우에 발생합니다. 이 옵션을 설정하지 않았으며 WHERE 절이 단순히 레코드를 찾는 경우 다른 사용자가 변경한 내용은 업데이트에 대한 경고 없이 무시될 수 있습니다.

    데이터 집합에서 업데이트할 때 동시성을 검사하는 데 대한 자세한 내용은 ADO.NET의 데이터 동시성 소개를 참조하십시오.

  • 데이터 테이블 새로 고침
    이 옵션을 선택하면 마법사가 각 Update 및 Insert 명령에 대한 Select 문을 생성합니다.

    참고:

    이 옵션은 Insert, Update 및 Delete 문 생성 확인란을 선택한 경우에만 사용할 수 있습니다.

    Select 문은 어댑터의 해당 명령 개체에 추가되어 Update 또는 Insert 명령이 끝나자마자 실행되며, 하나의 레코드, 즉 방금 업데이트된 레코드의 업데이트 버전만을 반환하도록 구성되어 있습니다.

    참고:

    세미콜론(;)으로 문을 구분하여 어댑터 명령 개체의 CommandText 속성에 문을 여러 개 추가할 수 있습니다.

    새 버전의 레코드를 가져오면 다음 열을 포함한, 해당 레코드의 업데이트된 열 값이 데이터 집합에 기록됩니다.

    • 데이터베이스가 기본값으로 채운 열

    • 자동 증분 열

    • 타임스탬프 열

    • 데이터베이스 트리거 결과의 영향을 받는 열

    이 옵션은 각 업데이트에 대해 두 개의 문(Update 문과 다음에 오는 Select 문)을 실행시키기 때문에 데이터 집합에 있는 수많은 레코드를 업데이트하는 경우에는 효율적이지 않습니다. 이런 경우에는 모든 업데이트를 수행한 후에 전체 데이터 테이블을 한 번에 다시 채우는 것이 좀 더 효율적입니다.

    참고:

    데이터 테이블의 새로 고침은 SQL 문을 일괄 처리할 수 있는 데이터베이스에서만 지원됩니다. 예를 들어, Microsoft Access에서는 다른 작업을 수행할 때와 같은 명령으로 데이터 테이블을 새로 고칠 수 없습니다.

참고 항목

개념

데이터의 새로운 기능

데이터 표시 개요

기타 리소스

데이터 연습

Visual Studio에서 데이터에 연결

데이터를 받기 위해 응용 프로그램 준비

데이터를 응용 프로그램으로 페치

Windows 응용 프로그램에서 폼에 데이터 표시

응용 프로그램에서 데이터 편집

데이터 유효성 검사

데이터 저장