Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Devolve o estado atual do formato de armazenamento vardecimal de uma base de dados ou permite uma base de dados para o formato vardecimal . No SQL Server 2008 (10.0.x) e versões posteriores, as bases de dados de utilizadores estão sempre ativadas. No entanto, como a compressão ao nível das linhas atinge os mesmos objetivos, o formato de armazenamento vardecimal está obsoleto. Ativar bases de dados para o formato de armazenamento vardecimal só é necessário no SQL Server 2005 (9.x).
Importante
Alterar o estado do formato de armazenamento vardecimal de uma base de dados pode afetar backup e recuperação, espelhamento de bases de dados, sp_attach_dbenvio de registos e replicação.
Sintaxe
sp_db_vardecimal_storage_format
[ [ @dbname = ] N'dbname' ]
[ , [ @vardecimal_storage_format = ] 'vardecimal_storage_format' ]
[ ; ]
Arguments
[ @dbname = ] N'dbname'
O nome da base de dados para a qual o formato de armazenamento deve ser alterado.
@dbname é sysname, com um padrão de NULL. Se o nome da base de dados for omitido, o estado do formato de armazenamento vardecimal de todas as bases de dados na instância do SQL Server é devolvido.
[ @vardecimal_storage_format = ] 'vardecimal_storage_format'
Especifica se o formato de armazenamento vardecimal está ativado.
@vardecimal_storage_format é varchar(3), com um padrão de NULL.
@vardecimal_storage_format pode ser ON ou OFF. Se for fornecido um nome de base de dados mas @vardecimal_storage_format for omitido, a definição atual da base de dados especificada é devolvida.
Este argumento não tem efeito no SQL Server 2008 (10.0.x) e versões posteriores.
Valores de código de retorno
0 (sucesso) ou 1 (fracasso).
Conjunto de resultados
Se o formato de armazenamento da base de dados não puder ser alterado, devolve sp_db_vardecimal_storage_format um erro. Se a base de dados já estiver no estado especificado, o procedimento armazenado não tem efeito.
Se o argumento @vardecimal_storage_format não for fornecido, sp_db_vardecimal_storage_format devolve as colunas Database Name e o Vardecimal State.
Observações
sp_db_vardecimal_storage_format Devolve o estado vardecimal , mas não pode alterar o estado vardecimal .
sp_db_vardecimal_storage_format falha nas seguintes circunstâncias:
- Existem utilizadores ativos na base de dados.
- A base de dados está ativada para espelhamento.
- A edição do SQL Server não suporta formato de armazenamento vardecimal .
Para alterar o estado do formato de armazenamento vardecimal para OFF, uma base de dados deve ser definida para o modelo de recuperação simples. Quando uma base de dados é definida para recuperação simples, a cadeia de logaritários é quebrada. Faça uma cópia de segurança completa da base de dados depois de definir o estado do formato de armazenamento vardecimal para OFF.
Alterar o estado para OFF falha se existirem tabelas usando compressão vardecimal de base de dados. Para alterar o formato de armazenamento de uma tabela, use sp_tableoption. Para determinar quais as tabelas numa base de dados que usam o formato de armazenamento vardecimal , use a OBJECTPROPERTY função e procure a TableHasVarDecimalStorageFormat propriedade, como mostrado no exemplo seguinte.
USE AdventureWorks2022;
GO
SELECT name,
object_id,
type_desc
FROM sys.objects
WHERE OBJECTPROPERTY(object_id, N'TableHasVarDecimalStorageFormat') = 1;
GO
Examples
O código seguinte permite a compressão na AdventureWorks2025 base de dados, confirma o estado e depois comprime as colunas decimais e numéricas na Sales.SalesOrderDetail tabela.
USE master;
GO
EXECUTE sp_db_vardecimal_storage_format 'AdventureWorks2022', 'ON';
GO
-- Check the vardecimal storage format state for
-- all databases in the instance.
EXECUTE sp_db_vardecimal_storage_format;
GO
USE AdventureWorks2022;
GO
EXECUTE sp_tableoption 'Sales.SalesOrderDetail', 'vardecimal storage format', 1;
GO