Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Returnerar det aktuella vardecimala lagringsformatet för en databas eller aktiverar en databas för vardecimala lagringsformat. I SQL Server 2008 (10.0.x) och senare versioner är användardatabaser alltid aktiverade. Eftersom radnivåkomprimering uppnår samma mål är dock vardecimallagringsformatet föråldrat. Att aktivera databaser för vardecimallagringsformatet är endast nödvändigt i SQL Server 2005 (9.x).
Viktigt!
Att ändra databasens vardecimala lagringsformatstatus kan påverka säkerhetskopiering och återställning, databasspegling, sp_attach_dbloggleverans och replikering.
Syntax
sp_db_vardecimal_storage_format
[ [ @dbname = ] N'dbname' ]
[ , [ @vardecimal_storage_format = ] 'vardecimal_storage_format' ]
[ ; ]
Arguments
[ @dbname = ] N'dbname'
Namnet på databasen för vilken lagringsformatet ska ändras.
@dbname är sysname, med standardvärdet NULL. Om databasnamnet utelämnas returneras vardecimala lagringsformatstatus för alla databaser i SQL Server-instansen.
[ @vardecimal_storage_format = ] 'vardecimal_storage_format'
Specificerar om vardecimallagringsformatet är aktiverat.
@vardecimal_storage_format är varchar(3), med en standard på NULL.
@vardecimal_storage_format kan vara ON eller OFF. Om ett databasnamn anges men @vardecimal_storage_format utelämnas, returneras den aktuella inställningen för den angivna databasen.
Detta argument har ingen effekt på SQL Server 2008 (10.0.x) och senare versioner.
Returnera kodvärden
0 (lyckades) eller 1 (fel).
Resultatuppsättning
Om databasens lagringsformat inte kan ändras sp_db_vardecimal_storage_format returneras ett felmeddelande. Om databasen redan är i det angivna tillståndet har den lagrade proceduren ingen effekt.
Om argumentet @vardecimal_storage_format inte tillhandahålls, sp_db_vardecimal_storage_format returnerar kolumnerna Database Name och .Vardecimal State
Anmärkningar
sp_db_vardecimal_storage_format Återlämnar det vardecimala tillståndet, men kan inte ändra det vardecimala tillståndet.
sp_db_vardecimal_storage_format misslyckas under följande omständigheter:
- Det finns aktiva användare i databasen.
- Databasen är aktiverad för spegling.
- Versionen av SQL Server stöder inte vardecimala lagringsformat.
För att ändra tillståndet för vardecimala lagringsformat till OFF, måste en databas sättas till den enkla återställningsmodellen. När en databas ställs in på enkel återställning bryts loggkedjan. Gör en fullständig databasbackup efter att du satt vardecimala lagringsformatets tillstånd till OFF.
Att ändra tillståndet till OFF misslyckas om det finns tabeller som använder vardecimal databaskomprimering. För att ändra lagringsformatet på en tabell, använd sp_tableoption. För att avgöra vilka tabeller i en databas som använder vardecimal lagringsformat, använd OBJECTPROPERTY funktionen och sök efter egenskapen TableHasVarDecimalStorageFormat , som visas i följande exempel.
USE AdventureWorks2022;
GO
SELECT name,
object_id,
type_desc
FROM sys.objects
WHERE OBJECTPROPERTY(object_id, N'TableHasVarDecimalStorageFormat') = 1;
GO
Examples
Följande kod möjliggör komprimering i databasen AdventureWorks2025 , bekräftar tillståndet och komprimerar sedan decimala och numeriska kolumner i Sales.SalesOrderDetail tabellen.
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