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.

Bb326653.note(es-es,SQL.90).gifImportante:
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

Ayuda e información

Obtener ayuda sobre SQL Server 2005