Compartir a través de


SET ANSI_DEFAULTS (Transact-SQL)

Controla un grupo de valores de SQL Server que conjuntamente especifican parte del comportamiento del estándar ISO.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL (Transact-SQL)

Sintaxis

SET ANSI_DEFAULTS { ON | OFF }

Comentarios

SET ANSI_DEFAULTS es una configuración del servidor que el cliente no modifica. El cliente administra su propia configuración. De manera predeterminada, esta configuración es la opuesta a la configuración del servidor. Los usuarios no deben modificar la configuración del servidor. Para cambiar el comportamiento del cliente, los usuarios deben utilizar SQL_COPT_SS_PRESERVE_CURSORS. Para obtener más información, vea SQLSetConnectAttr.

Cuando se habilita (ON), esta opción habilita las opciones siguientes de ISO:

SET ANSI_NULLS

SET CURSOR_CLOSE_ON_COMMIT

SET ANSI_NULL_DFLT_ON

SET IMPLICIT_TRANSACTIONS

SET ANSI_PADDING

SET QUOTED_IDENTIFIER

SET ANSI_WARNINGS

 

Juntas, estas opciones SET del estándar ISO definen el entorno de procesamiento de consultas durante la sesión de trabajo del usuario, la ejecución de un desencadenador o un procedimiento almacenado. Sin embargo, estas opciones SET no son todas las necesarias para cumplir el estándar ISO.

Cuando se trabaja con índices en columnas calculadas y vistas indizadas, cuatro de estos valores predeterminados (ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS y QUOTED_IDENTIFIER) deben ser ON. Estos valores predeterminados son siete opciones SET a las que se deben asignar los valores requeridos para crear y cambiar índices de columnas calculadas y vistas indizadas. Las demás opciones SET son ARITHABORT (ON), CONCAT_NULL_YIELDS_NULL (ON) y NUMERIC_ROUNDABORT (OFF). Para obtener más información acerca de las configuraciones de las opciones SET requeridas con vistas indizadas e índices en columnas calculadas, vea el apartado relativo a las consideraciones al utilizar las instrucciones SET en SET (Transact-SQL).

El controlador ODBC de SQL Server Native Client y el proveedor OLE DB de SQL Server Native Client para SQL Server establecen automáticamente ANSI_DEFAULTS en ON al conectarse.El controlador y el proveedor establecen a continuación CURSOR_CLOSE_ON_COMMIT e IMPLICIT_TRANSACTIONS en OFF. La opción OFF de SET CURSOR_CLOSE_ON_COMMIT y SET IMPLICIT_TRANSACTIONS se puede configurar en los orígenes de datos ODBC, en los atributos de conexión ODBC o en las propiedades de conexión OLE DB que se establecen en la aplicación antes de conectarse a SQL Server. SET ANSI_DEFAULTS tiene como opción predeterminada OFF en las conexiones desde aplicaciones DB-Library.

Cuando se ejecuta SET ANSI_DEFAULTS, SET QUOTED_IDENTIFIER se establece en tiempo de análisis y las opciones siguientes se establecen en tiempo de ejecución:

SET ANSI_NULLS

SET ANSI_WARNINGS

SET ANSI_NULL_DFLT_ON

SET CURSOR_CLOSE_ON_COMMIT

SET ANSI_PADDING

SET IMPLICIT_TRANSACTIONS

Permisos

Debe pertenecer a la función public.

Ejemplos

En el ejemplo siguiente se establece SET ANSI_DEFAULTS ON y se utiliza la instrucción DBCC USEROPTIONS para mostrar la configuración afectada.

-- SET ANSI_DEFAULTS ON.
SET ANSI_DEFAULTS ON
GO
-- Display the current settings.
DBCC USEROPTIONS
GO
-- SET ANSI_DEFAULTS OFF.
SET ANSI_DEFAULTS OFF
GO