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 Microsoft SQL Server admite.

Opción SET

Opción de base de datos

Opción de servidor

Valor predeterminado

SET ANSI_DEFAULTS (Transact-SQL)

Ninguna

Ninguna

No aplicable

SET ANSI_NULL_DFLT_OFF (Transact-SQL)

SET ANSI_NULL_DFLT_ON (Transact-SQL)

ANSI_NULL_DEFAULT

user options asigna un valor predeterminado

OFF

SET ANSI_NULLS (Transact-SQL)

ANSI_NULLS

user options asigna un valor predeterminado

OFF

SET ANSI_PADDING (Transact-SQL)

ANSI_PADDING

user options asigna un valor predeterminado

Activada

SET ANSI_WARNINGS (Transact-SQL)

ANSI_WARNINGS

user options asigna un valor predeterminado

OFF

SET ARITHABORT (Transact-SQL)

ARITHABORT

user options asigna un valor predeterminado

OFF

SET ARITHIGNORE (Transact-SQL)

Ninguna

user options asigna un valor predeterminado

OFF

SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

CONCAT_NULL_YIELDS_NULL

Ninguna

Desactivada

SET CONTEXT_INFO (Transact-SQL)

Ninguna

Ninguna

OFF

SET CURSOR_CLOSE_ON_COMMIT (Transact-SQL)

CURSOR_CLOSE ON_COMMIT

user options asigna un valor predeterminado

OFF

SET DATEFIRST (Transact-SQL)

Ninguna

Ninguna

7

SET DATEFORMAT (Transact-SQL)

Ninguna

Ninguna

mdy

SET DEADLOCK_PRIORITY (Transact-SQL)

Ninguna

Ninguna

NORMAL

SET FIPS_FLAGGER (Transact-SQL)

Ninguna

Ninguna

OFF

SET FMTONLY (Transact-SQL)

Ninguna

Ninguna

OFF

SET FORCEPLAN (Transact-SQL)

Ninguna

Ninguna

OFF

SET IDENTITY_INSERT (Transact-SQL)

Ninguna

 

Desactivada

SET IMPLICIT_TRANSACTIONS (Transact-SQL)

Ninguna

user options asigna un valor predeterminado

OFF

SET LANGUAGE (Transact-SQL)

Ninguna

Ninguna

us_english

SET LOCK_TIMEOUT (Transact-SQL)

Ninguna

Ninguna

Sin límite

SET NOCOUNT (Transact-SQL)

Ninguna

user options asigna un valor predeterminado

OFF

SET NOEXEC (Transact-SQL)

Ninguna

Ninguna

OFF

SET NUMERIC_ROUNDABORT (Transact-SQL)

NUMERIC_ROUNDABORT

Ninguna

Desactivada

SET OFFSETS (Transact-SQL)

Ninguna

Ninguna

OFF

SET PARSEONLY (Transact-SQL)

Ninguna

Ninguna

OFF

SET QUERY_GOVERNOR_COST_LIMIT (Transact-SQL)

Ninguna

query governor cost limit

Desactivada

SET QUOTED_IDENTIFIER (Transact-SQL)

quoted identifier

user options asigna un valor predeterminado

OFF

SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

Ninguna

Ninguna

OFF

SET ROWCOUNT (Transact-SQL)

Ninguna

Ninguna

OFF

SET SHOWPLAN_ALL (Transact-SQL)

Ninguna

Ninguna

OFF

SET SHOWPLAN_TEXT (Transact-SQL)

Ninguna

Ninguna

OFF

SET SHOWPLAN_XML (Transact-SQL)

Ninguna

Ninguna

OFF

SET STATISTICS IO (Transact-SQL)

Ninguna

Ninguna

OFF

SET STATISTICS PROFILE (Transact-SQL)

Ninguna

Ninguna

OFF

SET STATISTICS TIME (Transact-SQL)

Ninguna

Ninguna

OFF

SET STATISTICS XML (Transact-SQL)

Ninguna

Ninguna

OFF

SET TEXTSIZE (Transact-SQL)

Ninguna

Ninguna

OFF

SET TRANSACTION ISOLATION LEVEL (Transact-SQL)

Ninguna

Ninguna

n/d

SET XACT_ABORT (Transact-SQL)

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.

Vea también

Referencia

Conceptos