다음을 통해 공유


ISO 옵션의 효과

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform 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 라이브러리 기반 애플리케이션은 일반적으로 이러한 옵션을 설정하지 않습니다. 동일한 SQL 문을 실행할 때 ODBC 또는 DB-Library 클라이언트 간에 서로 다른 동작을 관찰하는 사이트는 SQL Server Native Client ODBC 드라이버에 문제가 있다고 가정해서는 안 됩니다. 먼저 SQL Server Native Client ODBC 드라이버에서 사용하는 것과 동일한 SET 옵션을 사용하여 DB-Library 환경에서 문을 다시 실행해야 합니다.

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

SQL Server 인스턴스에 연결된 경우 네 번째 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