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.
Importante |
---|
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. |
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.
Importante
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';