ISO 옵션의 효과

ODBC 표준은 ISO 표준과 거의 일치하며, ODBC 애플리케이션은 ODBC 드라이버가 표준 동작을 수행할 것으로 예상합니다. 동작이 ODBC 표준에 정의된 것과 더 밀접하게 일치하도록 하기 위해 SQL Server Native Client ODBC 드라이버는 항상 연결하는 SQL Server 버전에서 사용할 수 있는 모든 ISO 옵션을 사용합니다.

SQL Server Native Client ODBC 드라이버가 SQL Server instance 연결하면 서버는 클라이언트가 SQL Server Native Client ODBC 드라이버를 사용하고 있음을 감지하고 몇 가지 옵션을 설정합니다.

드라이버는 이러한 문을 자체적으로 실행하며 ODBC 애플리케이션에서 이를 요청하는 것은 아닙니다. 이러한 옵션을 설정하면 서버 동작이 ISO 표준과 일치하게 되므로 드라이버를 사용하는 ODBC 애플리케이션의 이식성을 높일 수 있습니다.

DB-Library 기반 애플리케이션은 일반적으로 이러한 옵션을 설정하지 않습니다. 동일한 SQL 문을 실행할 때 ODBC 또는 DB-Library 클라이언트 간에 서로 다른 동작을 관찰하는 사이트는 SQL Server Native Client ODBC 드라이버에 문제가 있다고 가정해서는 안 됩니다. 먼저 SQL Server Native Client ODBC 드라이버에서 사용하는 것과 동일한 SET 옵션을 사용하여 DB-Library 환경에서 문을 다시 실행해야 합니다.

SET 옵션은 사용자와 애플리케이션이 언제라도 설정하거나 해제할 수 있으므로 저장 프로시저 및 트리거 개발자는 위에 나열된 SET 옵션을 설정한 상태와 해제한 상태 모두에서 프로시저 및 트리거를 신중하게 테스트해야 합니다. 이렇게 하면 프로시저나 트리거가 호출될 때 특정 연결에서 설정하는 옵션에 관계없이 프로시저 및 트리거가 올바르게 작동합니다. 위의 옵션 중 하나에 대한 특정한 설정이 필요한 트리거 또는 저장 프로시저는 트리거 또는 저장 프로시저의 시작 부분에서 SET 문을 실행해야 합니다. 이 SET 문은 해당 트리거 또는 저장 프로시저가 실행되는 동안에만 적용됩니다. 프로시저 또는 트리거가 종료되면 원래 설정이 복원됩니다.

SQL Server instance 연결된 경우 네 번째 SET 옵션인 CONCAT_NULL_YIELDS_NULL 설정됩니다. SQL Server Native Client ODBC 드라이버는 AnsiNPW=NO가 데이터 원본 또는 SQLDriverConnect 또는 SQLBrowseConnect에 지정된 경우 에서 이러한 옵션을 설정하지 않습니다.

앞에서 설명한 ISO 옵션과 마찬가지로 데이터 원본 또는 SQLDriverConnect 또는 SQLBrowseConnect에서 QuotedID=NO가 지정된 경우 SQL Server Native Client ODBC 드라이버는 QUOTED_IDENTIFIER 옵션을 켜지 않습니다.

드라이버가 SET 옵션의 현재 상태를 알 수 있도록 ODBC 애플리케이션은 Transact-SQL SET 문을 사용하여 이러한 옵션을 설정하면 안 됩니다. 데이터 원본 또는 연결 옵션을 통해서만 이러한 옵션을 설정해야 합니다. 애플리케이션이 SET 문을 실행하면 드라이버가 잘못된 SQL 문을 생성할 수 있습니다.

참고 항목

문 실행(ODBC)
SQLDriverConnect
SQLBrowseConnect