sp_db_vardecimal_storage_format (Transact-SQL)
Nuevo: 12 de diciembre de 2006
Devuelve el estado del formato de almacenamiento vardecimal actual de una base de datos, o habilita o deshabilita una base de datos para el formato de almacenamiento vardecimal. Requiere el Service Pack 2 de SQL Server 2005 o versiones posteriores. El formato de almacenamiento vardecimal sólo está disponible en las ediciones Enterprise, Developer y Evaluation de SQL Server 2005.
Importante: |
---|
El cambio del estado del formato de almacenamiento vardecimal de una base de datos puede afectar a la copia de seguridad y la restauración, creación de reflejo de la base de datos, sp_attach_db, el trasvase de registros y la réplica. Para obtener información acerca del formato de almacenamiento vardecimal, vea Almacenar datos decimales como longitud variable. |
Sintaxis
sp_db_vardecimal_storage_format [ [ @dbname = ] 'database' ]
[ , [ @vardecimal_storage_format = ] {'ON' | 'OFF' }] [ ; ]
Argumentos
- [ @dbname= ] 'database'
Es el nombre de la base de datos para la que se cambia el formato de almacenamiento. database es de tipo sysname y no tiene ningún valor predeterminado. Si el nombre de la base de datos se omite, se devuelven los estados del formato de almacenamiento vardecimal de todas las base de datos de la instancia de SQL Server.
- [ @vardecimal_storage_format = ] {'ON'|'OFF'}
Especifica si el formato de almacenamiento vardecimal está habilitado. @vardecimal_storage_format puede ser ON u OFF. El parámetro es varchar(3), sin valor predeterminado. Si se proporciona un nombre de base de datos pero se omite @vardecimal_storage_format, se devuelve la configuración actual de la base de datos especificada.
Conjuntos de resultados
Si el formato de almacenamiento de la base de datos no se puede cambiar, sp_db_vardecimal_storage_format devuelve un error. Si la base de datos ya se encuentra en el estado especificado, el procedimiento almacenado no tiene efecto.
Notas
sp_db_vardecimal_storage_format será incorrecto en las siguientes circunstancias:
- Existen usuarios activos en la base de datos.
- La base de datos está habilitada para la creación del reflejo.
- La edición de SQL Server no admite el formato de almacenamiento vardecimal.
Para cambiar el estado del formato de almacenamiento vardecimal a OFF, se debe configurar una base de datos en el modo de recuperación simple. Cuando una base de datos se configura en el modo de recuperación simple, la cadena de registros se rompe. Haga una copia de seguridad de toda la base de datos después de configurar el estado del formato de almacenamiento vardecimal en OFF.
El cambio al estado OFF será incorrecto si existen tablas que usan la compresión de base de datos vardecimal. Para cambiar el formato de almacenamiento de una tabla, use sp_tableoption. Para determinar las tablas de una base de datos que usan el formato de almacenamiento vardecimal, use la función OBJECTPROPERTY
y busque la propiedad TableHasVarDecimalStorageFormat
, tal y como se indica en el siguiente ejemplo.
USE AdventureWorks ;
GO
SELECT name, object_id, type_desc
FROM sys.objects
WHERE OBJECTPROPERTY(object_id,
N'TableHasVarDecimalStorageFormat') = 1 ;
GO
Permisos
Requiere el permiso ALTER DATABASE.
Valores de código de retorno
0 (correcto) o 1 (error)
Ejemplos
El siguiente ejemplo habilita la compresión en la base de datos AdventureWorks
, confirma el estado y, a continuación, comprime las columnas decimal y numeric en la tabla Sales.SalesOrderDetail
.
USE master ;
GO
EXEC sp_db_vardecimal_storage_format 'AdventureWorks', 'ON' ;
GO
-- Check the vardecimal storage format state for
-- all databases in the instance.
EXEC sp_db_vardecimal_storage_format ;
GO
USE AdventureWorks ;
GO
EXEC sp_tableoption 'Sales.SalesOrderDetail', 'vardecimal storage format', 1 ;
GO
Vea también
Referencia
Procedimientos almacenados del motor de base de datos (Transact-SQL)
Otros recursos
Almacenar datos decimales como longitud variable