Efectos de las opciones ISO

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

La norma ODBC está estrechamente relacionada con la norma ISO, y las aplicaciones ODBC esperan de los controladores ODBC un comportamiento estándar. Para que su comportamiento se ajuste más estrechamente con el definido en el estándar ODBC, el controlador ODBC de SQL Server Native Client siempre usa las opciones ISO disponibles en la versión de SQL Server con la que se conecta.

Cuando el controlador ODBC de SQL Server Native Client se conecta a una instancia de SQL Server, el servidor detecta que el cliente usa el controlador ODBC SQL Server Native Client y establece varias opciones.

El propio controlador emite estas instrucciones; la aplicación ODBC no hace nada para solicitarlas. Cuando se establecen estas opciones, las aplicaciones ODBC que usan el controlador pueden ser más portables porque el comportamiento del servidor se ajusta a la norma ISO.

Las aplicaciones basadas en DB-Library no suelen activar estas opciones. Los sitios que observan un comportamiento diferente entre los clientes ODBC o DB-Library al ejecutar la misma instrucción SQL no deben suponer que esto apunta a un problema con el controlador ODBC de SQL Server Native Client. Primero deben volver a ejecutar la instrucción en el entorno de DB-Library con las mismas opciones SET que usaría el controlador ODBC de SQL Server Native Client.

Puesto que los usuarios y las aplicaciones pueden activar y desactivar las opciones SET en cualquier momento, los programadores de procedimientos almacenados y desencadenadores también deben tomar la precaución de probar sus procedimientos y desencadenadores con las opciones SET anteriormente indicadas tanto activadas como desactivadas. De esta forma se garantiza que los procedimientos y los desencadenadores funcionan correctamente, independientemente de las opciones que pueda tener configuradas una conexión concreta al llamar al procedimiento o el desencadenador. Los desencadenadores o procedimientos almacenados que requieren un valor determinado para una de estas opciones deben emitir una instrucción SET al comienzo del desencadenador o procedimiento almacenado. Esta instrucción SET solo permanece vigente durante la ejecución del desencadenador o del procedimiento almacenado; cuando se complete la acción del procedimiento o del desencadenador, se restablecerá la configuración original.

Cuando se conecta a una instancia de SQL Server, también se establece una cuarta opción SET, CONCAT_NULL_YIELDS_NULL. El controlador ODBC SQL Server Native Client no establece estas opciones en si se especifica AnsiNPW=NO en el origen de datos o en SQLDriverConnect o SQLBrowseConnect.

Al igual que las opciones ISO indicadas anteriormente, el controlador ODBC de SQL Server Native Client no activa la opción QUOTED_IDENTIFIER si quotedID=NO se especifica en el origen de datos o en SQLDriverConnect o SQLBrowseConnect.

Para permitir que el controlador conozca el estado actual de las opciones SET, las aplicaciones ODBC no deben usar la instrucción SET de Transact-SQL para establecer estas opciones. Solo deben establecerlas usando el origen de datos o las opciones de conexión. Si la aplicación emite instrucciones SET, el controlador puede generar instrucciones SQL incorrectas.

Consulte también

Ejecutar instrucciones (ODBC)
SQLDriverConnect
SQLBrowseConnect