Compartir a través de


sp_dboption (Transact-SQL)

Muestra o cambia las opciones de las bases de datos. No utilice sp_dboption para modificar las opciones de las bases de datos maestra o tempdb.

Nota importanteImportante

Esta característica se quitará en la versión siguiente de Microsoft SQL Server. No utilice esta característica en nuevos trabajos de desarrollo y modifique lo antes posible las aplicaciones que actualmente la utilizan. Utilice ALTER DATABASE en su lugar. Para modificar las opciones de la base de datos asociadas a la replicación (merge publish, published, subscribed), utilice sp_replicationdboption.

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

Sintaxis

sp_dboption [ [ @dbname = ] 'database' ] 
    [ , [ @optname = ] 'option_name' ] 
    [ , [ @optvalue = ] 'value' ] 
[;]

Argumentos

  • [ @dbname= ] 'database'
    Es el nombre de la base de datos en la que se establece la opción especificada. database es de tipo sysname y su valor predeterminado es NULL.

  • [ @optname= ] 'option_name'
    Es el nombre de la opción que se va a establecer. No es necesario especificar el nombre completo de la opción. SQL Server reconoce cualquier parte del nombre que sea exclusiva. Escriba el nombre de la opción entre comillas cuando incluya espacios en blanco incrustados o si se trata de una palabra clave. Si se omite este parámetro, sp_dboption enumera las opciones activadas. option_name es de tipo varchar(35) y su valor predeterminado es NULL.

  • [ @optvalue=] 'value'
    Es la nueva configuración de option_name. Si se omite este parámetro, sp_dboption devuelve la configuración actual. value puede ser true, false, on o off. value es varchar(10), con el valor predeterminado NULL.

Valores de código de retorno

0 (correcto) o 1 (error)

Conjuntos de resultados

En la siguiente tabla se muestra el conjunto de resultados cuando no se proporcionan parámetros.

Nombre de columna

Tipo de datos

Descripción

Settable database options

nvarchar(35)

Todas las opciones de base de datos que se pueden establecer.

En la siguiente tabla se muestra el conjunto de resultados cuando database es el único parámetro suministrado.

Nombre de columna

Tipo de datos

Descripción

The following options are set:

nvarchar(35)

La opciones establecidas en la base de datos especificada.

En la siguiente tabla se muestra el conjunto de resultados cuando se proporciona option_name.

Nombre de columna

Tipo de datos

Descripción

OptionName

nvarchar(35)

Nombre de la opción.

CurrentSetting

char(3)

Indica si la opción está activada o desactivada.

Si se proporciona value, sp_dboption no devuelve ningún conjunto de resultados.

Comentarios

En la siguiente tabla se presentan las opciones establecidas por sp_dboption. Para obtener más información acerca de cada opción, vea Configurar las opciones de la base de datos.

Opción

Descripción

auto create statistics

Cuando es true, las estadísticas que le falten a una consulta para su optimización se generan automáticamente durante la optimización. Para obtener más información, vea CREATE STATISTICS (Transact-SQL).

auto update statistics

Cuando es true, las estadísticas obsoletas que precise una consulta para su optimización se generan automáticamente durante la optimización. Para obtener más información, vea UPDATE STATISTICS (Transact-SQL).

autoclose

Cuando es true, la base de datos se cierra sin problemas y se liberan sus recursos después de que el último usuario cierre la sesión.

autoshrink

Cuando es true, los archivos de la base de datos son candidatos para reducirse de forma automática y periódica.

ANSI null default

Cuando es true, CREATE TABLE sigue las reglas ISO para determinar si una columna acepta valores NULL.

ANSI nulls

Cuando es true, todas las comparaciones con un valor NULL se evalúan como UNKNOWN. Cuando es false, las comparaciones de valores que no sean UNICODE con un valor NULL se evalúan como TRUE si los dos valores son NULL.

ANSI warnings

Cuando es true, se emiten errores o advertencias si se dan condiciones tales como "división por cero".

arithabort

Cuando es true, un error de desbordamiento o de división por cero detendrá la consulta o el proceso por lotes. Si el error se produce en una transacción, ésta se revierte. Cuando es false, aparece un mensaje de advertencia, pero la consulta, el proceso por lotes o la transacción continúa como si no se hubiera producido ningún error.

concat null yields null

Cuando es true, si alguno de los operandos de una operación de concatenación es NULL, el resultado es NULL.

cursor close on commit

Cuando es true, se cierran los cursores que estuvieran abiertos al confirmar o revertir una transacción. Cuando es false, estos cursores se mantienen abiertos al confirmarse una transacción. Cuando es false, si se revierte una transacción, se cierran todos los cursores, excepto los definidos como INSENSITIVE o STATIC.

dbo use only

Cuando es true, la base de datos solo puede ser utilizada por su propietario.

default to local cursor

Cuando es true, el valor predeterminado de las declaraciones de cursor es LOCAL.

merge publish

Cuando es true, se puede publicar la base de datos para una replicación de mezcla.

numeric roundabort

Cuando es true, se genera un error si se produce una pérdida de precisión en una expresión. Cuando es false, las pérdidas de precisión no generan mensajes de error y el resultado se redondea hasta la precisión de la columna o variable que lo almacena.

offline

Cuando es true (on), la base de datos está sin conexión. Cuando es false (off), la base de datos está en línea.

published

Cuando es true, se puede publicar la base de datos para replicación.

quoted identifier

Cuando es true, se pueden utilizar comillas dobles para encerrar los identificadores delimitados.

read only

Cuando es true, los usuarios solo pueden leer los datos de la base de datos. No pueden modificar los datos ni los objetos de la base de datos; no obstante, es posible eliminar la propia base de datos mediante la instrucción DROP DATABASE. No se puede utilizar la base de datos cuando se especifica un nuevo value para la opción de solo lectura. La base de datos maestra constituye la excepción. Solo el administrador del sistema puede utilizar maestra mientras se está configurando la opción read only.

recursive triggers

Cuando es true, habilita la activación recursiva de desencadenadores. Cuando es false, solamente evita la recursividad directa. Para deshabilitar la recursividad indirecta, establezca la opción nested triggers del servidor en 0 mediante sp_configure.

select into/bulkcopy

Partiendo de Microsoft SQL Server 2000, si el modelo de recuperación de la base de datos está actualmente establecido en FULL, la opción select into/bulkcopy restablece el modelo de recuperación en BULK_LOGGED. La forma correcta de cambiar el modelo de recuperación es utilizar la cláusula SET RECOVERY de la instrucción ALTER DATABASE.

single user

Cuando es true, solo puede tener acceso a la base de datos un usuario a la vez.

subscribed

Cuando es true, se puede suscribir la base de datos para publicación.

torn page detection

Cuando es true, se pueden detectar páginas incompletas.

trunc. log on chkpt.

Cuando es true, un punto de comprobación trunca la parte inactiva del registro cuando la base de datos se encuentra en modo de truncado de registro. Ésta es la única opción que puede establecer para la base de datos maestra.

Nota importanteImportante
A partir de SQL Server 2000, si se establece la opción trunc. log on chkpt. en true, el modelo de recuperación de la base de datos se establece en SIMPLE. Si la opción se establece en false, el modelo de recuperación se establece en FULL.

El propietario de la base de datos o el administrador del sistema puede establecer o desactivar determinadas opciones de la base de datos en todas las nuevas bases de datos mediante la ejecución de sp_dboption en la base de datos model.

Después de que se haya ejecutado sp_dboption, se ejecuta un punto de comprobación en la base de datos cuya opción ha sido cambiada. De ese modo, el cambio surte efecto inmediatamente.

sp_dboption cambia la configuración de una base de datos. Utilice sp_configure para cambiar la configuración de nivel de servidor y la instrucción SET para cambiar una configuración que solo afecte a la sesión actual.

Permisos

Para mostrar la lista completa de las opciones de base de datos y sus valores actuales, es necesario pertenecer al rol public. Para cambiar el valor de una opción de base de datos, es necesario pertenecer al rol fijo de base de datos db_owner.

Ejemplos

A. Establecer una base de datos en solo lectura

En el siguiente ejemplo se establece la base de datos AdventureWorks2008R2 como de solo lectura.

USE master;
GO
EXEC sp_dboption 'AdventureWorks2008R2', 'read only', 'TRUE';

B. Desactivar una opción

En el siguiente ejemplo se vuelve a establecer la base de datos AdventureWorks2008R2 como de escritura.

USE master;
GO
EXEC sp_dboption 'AdventureWorks2008R2', 'read only', 'FALSE';