Opciones SET
En la tabla siguiente se proporciona una lista alfabética de las opciones SET y las correspondientes opciones de base de datos y de servidor que MicrosoftSQL Server admite.
Opción SET |
Opción de base de datos |
Opción de servidor |
Valor predeterminado |
---|---|---|---|
Ninguna |
Ninguna |
No aplicable |
|
ANSI_NULL_DEFAULT |
user options asigna un valor predeterminado |
OFF |
|
ANSI_NULLS |
user options asigna un valor predeterminado |
OFF |
|
ANSI_PADDING |
user options asigna un valor predeterminado |
Activada |
|
ANSI_WARNINGS |
user options asigna un valor predeterminado |
OFF |
|
ARITHABORT |
user options asigna un valor predeterminado |
OFF |
|
Ninguna |
user options asigna un valor predeterminado |
OFF |
|
CONCAT_NULL_YIELDS_NULL |
Ninguna |
Desactivada |
|
Ninguna |
Ninguna |
OFF |
|
CURSOR_CLOSE ON_COMMIT |
user options asigna un valor predeterminado |
OFF |
|
Ninguna |
Ninguna |
7 |
|
Ninguna |
Ninguna |
mdy |
|
Ninguna |
Ninguna |
NORMAL |
|
Ninguna |
Ninguna |
OFF |
|
Ninguna |
Ninguna |
OFF |
|
Ninguna |
Ninguna |
OFF |
|
Ninguna |
|
Desactivada |
|
Ninguna |
user options asigna un valor predeterminado |
OFF |
|
Ninguna |
Ninguna |
us_english |
|
Ninguna |
Ninguna |
Sin límite |
|
Ninguna |
user options asigna un valor predeterminado |
OFF |
|
Ninguna |
Ninguna |
OFF |
|
NUMERIC_ROUNDABORT |
Ninguna |
Desactivada |
|
Ninguna |
Ninguna |
OFF |
|
Ninguna |
Ninguna |
OFF |
|
Ninguna |
query governor cost limit |
Desactivada |
|
quoted identifier |
user options asigna un valor predeterminado |
OFF |
|
Ninguna |
Ninguna |
OFF |
|
Ninguna |
Ninguna |
OFF |
|
Ninguna |
Ninguna |
OFF |
|
Ninguna |
Ninguna |
OFF |
|
Ninguna |
Ninguna |
OFF |
|
Ninguna |
Ninguna |
OFF |
|
Ninguna |
Ninguna |
OFF |
|
Ninguna |
Ninguna |
OFF |
|
Ninguna |
Ninguna |
OFF |
|
Ninguna |
Ninguna |
OFF |
|
Ninguna |
Ninguna |
n/d |
|
Ninguna |
Ninguna |
Desactivada |
Opciones SET de tiempo de análisis y tiempo de ejecución
El momento en el que las opciones SET surten efecto depende de si la opción es una opción de tiempo de análisis o de tiempo de ejecución. Las opciones de tiempo de análisis surten efecto durante el análisis, según se encuentran las opciones en el texto, sin tener en cuenta las instrucciones de control de flujo. Las opciones de tiempo de ejecución surten efecto durante la ejecución del código en el que se especifican. Si hay un error en la ejecución antes de que se haya ejecutado la instrucción SET, la opción no se establece. Si hay un error en la ejecución una vez ejecutada la instrucción SET, la opción se habrá establecido.
Las opciones QUOTED_IDENTIFIER, PARSEONLY, OFFSETS y FIPS_FLAGGER son de tiempo de análisis. El resto de las opciones SET son de tiempo de ejecución.
Las instrucciones SET QUOTED_IDENTIFIER y SET ANSI_NULLS que se producen en un lote o procedimiento almacenado no afectan al lote o al procedimiento almacenado. En su lugar, la configuración que se utiliza para las instrucciones de un lote o procedimiento almacenado es la que hay cuando se crea el lote o procedimiento almacenado.
Duración de las opciones SET
En esta sección se describe la duración de las opciones SET.
Las opciones SET que establece un usuario en una secuencia de comandos se aplican hasta que se restablezcan o hasta que se termine la sesión del usuario con el servidor.
Las opciones SET que se establecen en un procedimiento almacenado o desencadenador se aplican hasta que se restablecen en el procedimiento almacenado o desencadenador, o bien hasta que el control vuelve al código que los invocó.
Una conexión habilitada para MARS mantiene una lista de valores predeterminados de las opciones SET. Cuando se ejecuta un lote en esta conexión, los valores predeterminados de las opciones SET se copian en el entorno de la solicitud. Cuando el lote finaliza, el entorno se copia en la sesión predeterminada. De este modo, varios lotes ejecutándose a la vez en la misma conexión se ejecutan en un entorno de opciones SET aislado.
[!NOTA]
En conexiones habilitadas para MARS, si se ejecutan varios lotes al mismo tiempo y estos modifican el entorno de ejecución por lotes, el entorno predeterminado resultante para la conexión depende del último lote que ha acabado de ejecutarse.
A menos que se restablezcan de forma explícita, los valores de las opciones SET de todos los códigos de mayor nivel se aplican en un procedimiento almacenado o desencadenador.
Las opciones SET establecidas por un usuario dentro de un lote SQL dinámico se aplican solamente mientras dura el lote.
A menos que se restablezcan de forma implícita o explícita, las opciones SET establecidas para una conexión se aplican después de conectarse a una base de datos distinta.
[!NOTA]
Una consideración adicional es que cuando un usuario se conecta a una base de datos, algunas opciones se pueden establecer en ON (activada) automáticamente, en función de los valores especificados por el uso anterior de user options, la opción de servidor o los valores que se aplican a todas las conexiones ODBC y OLE DB.
Opción SET con acceso directo
Transact-SQL proporciona la instrucción SET ANSI_DEFAULTS como acceso directo para establecer estas opciones estándar 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
El acceso directo restablece los valores de estas opciones. Cualquier opción individual establecida una vez que se ha utilizado el acceso directo anula el valor correspondiente establecido por el mismo.
[!NOTA]
SET ANSI_DEFAULTS no establece todas las opciones necesarias para cumplir el estándar ISO.