sp_db_vardecimal_storage_format (Transact-SQL)

Nouveau : 12 décembre 2006

Retourne l'état du format de stockage vardecimal actuel d'une base de données, ou active ou désactive une base de données pour le format de stockage vardecimal. Requiert SQL Server 2005 Service Pack 2 ou une version ultérieure. Le format de stockage vardecimal est disponible uniquement dans les éditions SQL Server 2005 Enterprise, Developer et Evaluation.

Bb326653.note(fr-fr,SQL.90).gifImportant :
La modification de l'état du format de stockage vardecimal d'une base de données peut affecter la sauvegarde et la récupération, la mise en miroir de bases de données, sp_attach_db, l'envoi de journaux et la réplication. Pour obtenir des informations sur le format de stockage vardecimal, consultez Stockage des données décimales sous forme de colonne de longueur variable.

Syntaxe

sp_db_vardecimal_storage_format [ [ @dbname = ] 'database' ] 
    [ , [ @vardecimal_storage_format = ] {'ON' | 'OFF' }] [ ; ]

Arguments

  • [ @dbname= ] 'database'
    Nom de la base de données dont le format de stockage doit être modifié. database est de type sysname et ne possède pas de valeur par défaut. Si le nom de la base de données est omis, les états de format de stockage vardecimal de toutes les bases de données dans l'instance de SQL Server sont retournés.
  • [ @vardecimal_storage_format = ] {'ON'|'OFF'}
    Spécifie si le format de stockage vardecimal est activé. @vardecimal_storage_format peut prendre la valeur ON ou OFF (activé ou désactivé). Le paramètre est de type varchar(3), sans valeur par défaut. Si un nom de base de données est indiqué mais que @vardecimal_storage_format est omis, le paramètre actuel de la base de données spécifiée est retourné.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Notes

sp_db_vardecimal_storage_format échoue dans les circonstances suivantes :

  • Il existe des utilisateurs actifs dans la base de données.
  • La base de données est activée pour la mise en miroir.
  • L'édition de SQL Server ne prend pas en charge le format de stockage vardecimal.

Pour qu'il soit possible de basculer l'état du format de stockage vardecimal à OFF, une base de données doit être configurée en mode de récupération simple. Lorsqu'une base de données est configurée en mode de récupération simple, la séquence de journaux de transactions consécutifs est rompue. Procédez à une sauvegarde de base de données complète une fois que vous avez défini l'état du format de stockage vardecimal à OFF.

Le passage de l'état à OFF échouera si des tables utilisent la compression de base de données vardecimal. Pour modifier le format de stockage d'une table, utilisez sp_tableoption. Pour déterminer quelles sont les tables d'une base de données qui utilisent le format de stockage vardecimal, utilisez la fonction OBJECTPROPERTY et recherchez la propriété TableHasVarDecimalStorageFormat, comme indiqué dans l'exemple suivant.

USE AdventureWorks ;
GO
SELECT name, object_id, type_desc
FROM sys.objects 
 WHERE OBJECTPROPERTY(object_id, 
   N'TableHasVarDecimalStorageFormat') = 1 ;
GO

Autorisations

Nécessite l'autorisation ALTER DATABASE.

Ensembles de résultats

Si le format de stockage de la base de données ne peut pas être modifié, sp_db_vardecimal_storage_format retourne une erreur. Si la base de données est déjà dans l'état spécifié, la procédure stockée est sans effet.

Exemples

L'exemple suivant autorise la compression dans la base de données AdventureWorks, confirme l'état, puis compresse les colonnes decimal et numeric de la table 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

Voir aussi

Référence

Procédures stockées du moteur de base de données (Transact-SQL)

Autres ressources

Stockage des données décimales sous forme de colonne de longueur variable

Aide et Informations

Assistance sur SQL Server 2005