ISO 옵션의 효과

적용 대상: SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)

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

SQL Server Native Client ODBC 드라이버가 SQL Server 인스턴스에 연결하면 서버는 클라이언트가 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 인스턴스에 연결된 경우 CONCAT_NULL_YIELDS_NULL 네 번째 SET 옵션도 설정됩니다. SQL Server Native Client ODBC 드라이버는 AnsiNPW=NO가 데이터 원본 또는 SQLDriverConnect 또는 SQLBrowseConnect에 지정된 경우에 대해 이러한 옵션을 설정하지 않습니다.

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

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

참고 항목

문 실행(ODBC)
SQLDriverConnect
SQLBrowseConnect