Configurar las opciones de la base de datos
Para cada base de datos, es posible configurar varias opciones de base de datos que determinen sus características. Las opciones son únicas para cada base de datos y no afectan a otras bases de datos. Cuando crea una base de datos, estas opciones se establecen en sus valores predeterminados y estos valores se pueden modificar mediante el uso de la cláusula SET de la instrucción ALTER DATABASE. Además, SQL Server Management Studio se puede utilizar para establecer la mayoría de estas opciones.
Nota
La configuración del lado servidor se establece mediante el procedimiento almacenado del sistema sp_configure o mediante SQL Server Management Studio. Para obtener más información, vea Establecer las opciones de configuración del servidor. La configuración de nivel de conexión se especifica mediante instrucciones SET. Para obtener más información, vea Opciones SET.
Para cambiar los valores predeterminados de cualquiera de las opciones de las bases de datos recién creadas, cambie la opción adecuada en la base de datos modelo. Por ejemplo, si desea que el valor predeterminado de la opción de la base de datos AUTO_CLOSE se establezca en True para cualquier base de datos creada con posterioridad, establezca la opción AUTO_CLOSE de model en True.
Después de especificar una opción de la base de datos, se utiliza automáticamente un punto de comprobación para que la modificación surta efecto de forma inmediata. Para obtener más información, vea CHECKPOINT (Transact-SQL).
Opciones de base de datos
En las siguientes tablas se enumeran las opciones de base de datos que se establecen cuando se crea una base de datos y se definen sus valores predeterminados. Para obtener una descripción completa de estas opciones, vea ALTER DATABASE (Transact-SQL).
Opciones automáticas
Controlan determinados comportamientos automáticos.
Opción |
Descripción |
Valor predeterminado |
---|---|---|
AUTO_CLOSE |
Si se establece en ON, la base de datos se cierra sin problemas y se liberan sus recursos después de que haya salido el último usuario. La base de datos se vuelve a abrir automáticamente cuando un usuario intenta utilizarla de nuevo. Si se establece en OFF, la base de datos sigue abierta después de que haya salido el último usuario. |
Es True para todas las bases de datos si se usa SQL Server 2000 Desktop Engine o SQL Server Express, y False en el resto de las ediciones, independientemente del sistema operativo. |
AUTO_CREATE_STATISTICS |
Si se establece en ON, se crean automáticamente estadísticas de las columnas utilizadas en un predicado. Si se establece en OFF, las estadísticas no se crean automáticamente; en su lugar, se pueden crear manualmente. |
True |
AUTO_UPDATE_STATISTICS |
Si se establece en ON, las estadísticas que le falten a una consulta para su optimización se generan automáticamente durante la optimización de la consulta. Si se establece en OFF, las estadísticas se deben crear manualmente. Para obtener más información, vea Utilizar las estadísticas para mejorar el rendimiento de las consultas. |
True |
AUTO_SHRINK |
Si se establece en ON, los archivos de las bases de datos se pueden reducir periódicamente. SQL Server puede reducir automáticamente los archivos de datos y los archivos de registro. AUTO_SHRINK reduce el tamaño del registro de transacciones solamente si el modelo de recuperación de la base de datos se establece en SIMPLE o si se realiza una copia de seguridad del registro. Si se establece en OFF, los archivos de la base de datos no se reducen automáticamente durante las comprobaciones periódicas de espacio no utilizado. |
False |
Auto_Update_Statistics_Asynchronously |
Cuando es True, actualiza las estadísticas de forma asincrónica. |
False |
Opciones de cursor
Controlan el comportamiento y el ámbito del cursor.
Opción |
Descripción |
Valor predeterminado |
---|---|---|
CURSOR_CLOSE_ON_COMMIT |
Si se establece en ON, se cierran los cursores que estén abiertos cuando se confirma o se revierte una transacción. Si se establece en OFF, los cursores siguen abiertos cuando se confirma una transacción; revertir una transacción cierra los cursores excepto los que están definidos como INSENSITIVE o STATIC. |
OFF |
CURSOR_DEFAULT |
Si se especifica LOCAL y no se define ningún cursor como GLOBAL al crearlo, el ámbito del cursor es local para el lote, el procedimiento almacenado o el desencadenador en el que se creó el cursor. El nombre del cursor solo es válido dentro de este ámbito. Si se especifica GLOBAL y no se define ningún cursor como LOCAL al crearlo, el ámbito del cursor es global para la conexión. Se puede hacer referencia al nombre del cursor en cualquier procedimiento almacenado o lote que ejecute la conexión. |
GLOBAL |
Opciones de disponibilidad de la base de datos
Controlan si la base de datos está en línea o sin conexión, quién puede conectarse a la base de datos y si la base de datos está o no en modo de solo lectura.
Opción |
Descripción |
Valor predeterminado |
---|---|---|
OFFLINE | ONLINE | EMERGENCY |
Cuando se especifica OFFLINE, la base de datos se cierra sin problemas y se marca como sin conexión. Cuando se especifica ONLINE, la base de datos está abierta y disponible para su utilización. Cuando se especifica EMERGENCY, la base de datos se marca como READ_ONLY, se deshabilita el registro y se limita el acceso a los miembros del rol fijo de servidor sysadmin. |
ONLINE |
READ_ONLY | READ_WRITE |
Cuando se especifica READ_ONLY, los usuarios pueden leer los datos de la base de datos pero no pueden modificarlos. Cuando se especifica READ_WRITE, la base de datos está disponible para operaciones de lectura y escritura. |
READ_WRITE |
SINGLE_USER | RESTRICTED_USER | MULTI_USER |
Cuando se especifica SINGLE_USER, solo se puede conectar un usuario a la base de datos en un momento dado. Todas las demás conexiones de usuario se desconectan. Cuando se especifica RESTRICTED_USER, solo pueden conectarse a la base de datos los miembros del rol fijo de base de datos db_owner y los de los roles fijos de servidor dbcreator y sysadmin, pero no se limita la cantidad de miembros. Cuando se especifica MULTI_USER, se permite el acceso de todos los usuarios que cuenten con los permisos adecuados para conectarse a la base de datos. |
MULTI_USER |
Opciones de optimización de correlación de fechas
Controlan la opción date_correlation_optimization.
Opción |
Descripción |
Valor predeterminado |
---|---|---|
DATE_CORRELATION_OPTIMIZATION |
Cuando se especifica ON, SQL Server mantiene las estadísticas de correlación entre dos tablas cualesquiera de la base de datos que estén vinculadas mediante una restricción FOREIGN KEY y tengan columnas datetime. Cuando se especifica OFF, no se mantienen las estadísticas de correlación. |
OFF |
Para obtener más información, vea Optimizar consultas con acceso a columnas datetime correlativas.
Opciones de acceso externo
Controlan si es posible obtener acceso a la base de datos por medio de recursos externos, como objetos de otra base de datos.
Opción |
Descripción |
Valor predeterminado |
---|---|---|
DB_CHAINING |
Cuando se especifica ON, la base de datos puede constituir el origen o el destino de una cadena de propiedad entre bases de datos. Cuando se especifica OFF, la base de datos no puede participar en el encadenamiento de propiedad entre bases de datos. |
OFF |
TRUSTWORTHY |
Cuando se establece en ON, los módulos de la base de datos (por ejemplo, las funciones definidas por el usuario o los procedimientos almacenados) que utilizan un contexto de suplantación pueden obtener acceso a los recursos fuera de la base de datos. Cuando se especifica OFF, en un contexto de suplantación, no es posible obtener acceso a los recursos fuera de la base de datos. TRUSTWORTHY se establece en OFF cada vez que se adjunta la base de datos. |
OFF |
Opción de parametrización
Controla la opción de parametrización.
Opción |
Descripción |
Valor predeterminado |
---|---|---|
PARAMETERIZATION |
Cuando se especifica SIMPLE, las consultas se parametrizan en función del comportamiento predeterminado de la base de datos. Cuando se especifica FORCED, SQL Server parametriza todas las consultas de la base de datos. |
SIMPLE |
Opciones de recuperación
Controlan el modelo de recuperación de la base de datos.
Opción |
Descripción |
Valor predeterminado |
---|---|---|
RECOVERY |
Cuando se especifica FULL, se proporciona recuperación completa tras un error de medios mediante el uso de copias de seguridad de registros de transacciones. Si un archivo de datos está dañado, la recuperación del medio puede restaurar todas las transacciones confirmadas. Cuando se especifica BULK_LOGGED, se proporciona recuperación tras un error de medios mediante la combinación del mejor rendimiento y de la menor cantidad de espacio utilizado de registro para determinadas operaciones masivas o a gran escala. Cuando se especifica SIMPLE, se proporciona una estrategia de copia de seguridad sencilla que utiliza un espacio de registro mínimo. |
FULL |
PAGE_VERIFY |
Cuando se especifica CHECKSUM, Motor de base de datos calcula una suma de comprobación teniendo en cuenta el contenido de toda la página y almacena el valor en el encabezado de página cuando ésta se registra en un disco. Si la página se lee desde el disco, la suma de comprobación se vuelve a calcular y se compara con el valor almacenado en el encabezado de página. Cuando se especifica TORN_PAGE_DETECTION, se guarda un patrón de 2 bits específico por cada sector de 512 bytes de la página de base de datos de 8 kilobytes (KB) y se almacena en el encabezado de página de la base de datos cuando la página se escribe en disco. Si la página se lee desde el disco, los bits rasgados almacenados en el encabezado de página se comparan con la información real del sector de la página. Cuando se especifica NONE, los registros de la página de base de datos no generarán un valor de CHECKSUM ni de TORN_PAGE_DETECTION. SQL Server no controlará la suma de comprobación ni la página rasgada durante una lectura aunque haya un valor de CHECKSUM o TORN_PAGE_DETECTION presente en el encabezado de página. |
CHECKSUM |
Opciones de Service Broker
Controlan las opciones de Service Broker.
Opción |
Descripción |
Valor predeterminado |
---|---|---|
ENABLE_BROKER | DISABLE_BROKER | NEW_BROKER | ERROR_BROKER_CONVERSATIONS |
Cuando se especifica ENABLE_BROKER, se habilita Service Broker en la base de datos especificada. Cuando se especifica DISABLE_BROKER, se deshabilita Service Broker en la base de datos especificada. Cuando se especifica NEW_BROKER, la base de datos recibe un nuevo identificador de agente. Cuando se especifica ERROR_BROKER_CONVERSATIONS, las conversaciones efectuadas en la base de datos reciben un mensaje de error al adjuntar la base de datos. |
ENABLE_BROKER |
Opciones de aislamiento de instantáneas
Determinan el nivel de aislamiento de transacción.
Opción |
Descripción |
Valor predeterminado |
---|---|---|
ALLOW_SNAPSHOT_ISOLATION |
Cuando se especifica ON, las transacciones pueden especificar el nivel de aislamiento de transacción SNAPSHOT. Si una transacción se ejecuta en el nivel de aislamiento SNAPSHOT, todas las instrucciones ven una instantánea de los datos tal como estaban al inicio de la transacción. Cuando se especifica OFF, las transacciones no pueden especificar el nivel de aislamiento de transacción SNAPSHOT. |
OFF |
READ_COMMITTED_SNAPSHOT |
Cuando se especifica ON, las transacciones que indican el nivel de aislamiento READ COMMITTED usan versiones de filas en lugar de bloqueos. Si una transacción se ejecuta en el nivel de aislamiento READ COMMITTED, todas las instrucciones ven una instantánea de los datos tal y como estaban al inicio de la instrucción. Cuando se especifica OFF, las transacciones que indican el nivel de aislamiento READ COMMITTED usan bloqueos. Al establecer la opción READ_COMMITTED_SNAPSHOT, solo se permite en la base de datos la conexión que ejecuta el comando ALTER DATABASE. No debe haber ninguna otra conexión abierta en la base de datos hasta que finalice ALTER DATABASE. La base de datos no tiene que estar en modo de usuario único. |
OFF |
Opciones de SQL
Controlan las opciones de compatibilidad con ANSI.
Opción |
Descripción |
Valor predeterminado |
---|---|---|
ANSI_NULL_DEFAULT |
Determina el valor predeterminado, NULL o NOT NULL, de una columna, tipo de datos del alias o tipo definido por el usuario CLR para los que no se ha definido explícitamente la nulabilidad en las instrucciones CREATE TABLE o ALTER TABLE. Cuando se especifica ON, el valor predeterminado es NULL. Cuando se especifica OFF, el valor predeterminado es NOT NULL. |
OFF |
ANSI_NULLS |
Cuando se especifica ON, todas las comparaciones con un valor NULL se evalúan como UNKNOWN. Cuando se especifica OFF, las comparaciones de valores que no sean UNICODE con un valor NULL se evalúan como TRUE si los dos valores son NULL. |
OFF |
ANSI_PADDING |
Cuando se establece en ON, los espacios en blanco finales de los valores de caracteres insertados en las columnas varchar o nvarchar y los ceros finales de los valores binarios insertados en las columnas varbinary no se recortan. Los valores no se rellenan hasta completar la longitud de la columna. Cuando se establece en OFF, los espacios en blanco finales para varchar o nvarchar y los ceros para varbinary se recortan. Esta opción solo afecta a la definición de nuevas columnas. Las columnas char y binary que permiten valores NULL se rellenan hasta completar la longitud de la columna si ANSI_PADDING se establece en ON, pero los espacios en blanco y los ceros finales se recortan si ANSI_PADDING se establece en OFF. Las columnas char y binary que no permiten valores NULL siempre se rellenan hasta completar la longitud de la columna. |
OFF |
ANSI_WARNINGS |
Cuando se especifica ON, se emiten mensajes de error o advertencias cada vez que se generan condiciones como división entre cero o cuando aparecen valores NULL en funciones de agregado. Cuando se especifica OFF, no se emiten advertencias y se devuelven valores NULL cada vez que se generan condiciones como división entre cero. |
OFF |
ARITHABORT |
Cuando se especifica ON, se termina una consulta cuando se produce un error de desbordamiento o un error de una operación de división entre cero durante su ejecución. Cuando se especifica OFF, se muestra un mensaje de advertencia si se produce uno de estos errores, pero la consulta, el lote o la transacción continuará procesándose como si no se hubiera producido el error. |
OFF |
CONCAT_NULL_YIELDS_NULL |
Cuando se especifica ON, el resultado de una operación de concatenación es NULL si alguno de los operandos es NULL. Cuando se especifica OFF, el valor NULL se trata como una cadena de caracteres vacía. |
OFF |
QUOTED_IDENTIFIER |
Cuando se especifica ON, se pueden utilizar comillas dobles para encerrar los identificadores delimitados. Cuando se especifica OFF, los identificadores no pueden ir entre comillas y deben adaptarse a todas las reglas de Transact-SQL que se aplican a los identificadores. |
OFF |
NUMERIC_ROUNDABORT |
Cuando se especifica ON, al producirse una pérdida de precisión en una expresión se genera un error. Cuando se especifica OFF, las pérdidas de precisión no generan mensajes de error y el resultado se redondea con la precisión de la columna o la variable que lo almacena. |
OFF |
RECURSIVE_TRIGGERS |
Cuando se especifica ON, se permite la activación recursiva de desencadenadores AFTER. Cuando se especifica OFF, solo se impide la activación recursiva de desencadenadores AFTER. |
OFF |
Para cambiar las opciones de base de datos