sp_db_vardecimal_storage_format (Transact-SQL)
Aplica-se a:SQL Server
Retorna o formato de armazenamento vardecimal atual de um banco de dados ou habilita um banco de dados para formato de armazenamento vardecimal. A partir do SQL Server 2008 (10.0.x), os bancos de dados do usuário são sempre habilitados. A habilitação de bancos de dados para o formato de armazenamento vardecimal só é necessária no SQL Server 2005 (9.x).
Observação
O SQL Server 2019 (15.x) oferece suporte ao formato de armazenamento vardecimal; No entanto, como a compactação em nível de linha atinge os mesmos objetivos, o formato de armazenamento vardecimal foi preterido. Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.
Importante
A alteração do estado do formato de armazenamento vardecimal de um banco de dados pode afetar o backup e a recuperação, o espelhamento do banco de dados, o sp_attach_db, o envio de logs e a replicação.
Sintaxe
sp_db_vardecimal_storage_format [ [ @dbname = ] 'database_name']
[ , [ @vardecimal_storage_format = ] { 'ON' | 'OFF' } ]
[;]
Argumentos
@dbname= [ ] 'database_name'
É o nome do banco de dados para o qual o formato de armazenamento será alterado. database_name é sysname, sem padrão. Se o nome do banco de dados for omitido, o status do formato de armazenamento vardecimal de todos os bancos de dados na instância do SQL Server será retornado.
@vardecimal_storage_format= [ ] {'LIGADO'|' DESLIGADO'}
Especifica se o formato de armazenamento vardecimal está habilitado. @vardecimal_storage_format pode ser ON ou OFF. O parâmetro é varchar(3), sem padrão. Se um nome de banco de dados for fornecido, mas o @vardecimal_storage_format for omitido, a configuração atual do banco de dados especificado será retornada.
Importante
Esse argumento não tem efeito no SQL Server 2008 (10.0.x) ou versões posteriores.
Valores do código de retorno
0 (êxito) ou 1 (falha)
Conjuntos de resultados
Se o formato de armazenamento do banco de dados não puder ser alterado, sp_db_vardecimal_storage_format retornará um erro. Se o banco de dados já estiver no estado especificado, o procedimento armazenado não terá nenhum efeito.
Se o @vardecimal_storage_format argumento não for fornecido, retornará as colunas Nome do Banco de Dados e Estado Vardecimal.
Comentários
sp_db_vardecimal_storage_format retorna o estado vardecimal, mas não pode alterar o estado vardecimal.
sp_db_vardecimal_storage_format falhará nas seguintes circunstâncias:
Há usuários ativos no banco de dados.
O banco de dados está habilitado para espelhamento.
A edição do SQL Server não oferece suporte ao formato de armazenamento vardecimal.
Para alterar o estado do formato de armazenamento vardecimal para OFF, um banco de dados deve ser definido como modelo de recuperação simples. Quando um banco de dados é definido para o modelo de recuperação simples, a cadeia de logs é quebrada. Execute um backup completo do banco de dados depois de definir o formato de armazenamento vardecimal como OFF.
A alteração do estado para OFF falhará se houver tabelas que usam compactação de banco de dados vardecimal. Para alterar o formato de armazenamento de uma tabela, use sp_tableoption. Para determinar quais tabelas de um banco de dados usam o formato de armazenamento vardecimal, use a função OBJECTPROPERTY
e procure a propriedade TableHasVarDecimalStorageFormat
, conforme mostrado no exemplo a seguir.
USE AdventureWorks2022;
GO
SELECT name, object_id, type_desc
FROM sys.objects
WHERE OBJECTPROPERTY(object_id,
N'TableHasVarDecimalStorageFormat') = 1 ;
GO
Exemplos
O código a seguir habilita a compactação no banco de dados AdventureWorks2022
, confirma o estado e, em seguida, compacta as colunas decimais e numéricas da tabela Sales.SalesOrderDetail
.
USE master ;
GO
EXEC sp_db_vardecimal_storage_format 'AdventureWorks2022', 'ON' ;
GO
-- Check the vardecimal storage format state for
-- all databases in the instance.
EXEC sp_db_vardecimal_storage_format ;
GO
USE AdventureWorks2022;
GO
EXEC sp_tableoption 'Sales.SalesOrderDetail', 'vardecimal storage format', 1 ;
GO
Confira também
Procedimentos armazenados do mecanismo de banco de dados (Transact-SQL)
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários