Megosztás a következőn keresztül:


sp_db_vardecimal_storage_format (Transact-SQL)

A következőkre vonatkozik:SQL Server

Visszaadja az adatbázis aktuális vardecimal tárolóformátumának állapotát, vagy engedélyezi az adatbázist vardecimális tárolási formátumhoz. Az SQL Server 2008 (10.0.x) és későbbi verziókban a felhasználói adatbázisok mindig engedélyezettek. Azonban mivel a sorszintű tömörítés ugyanazokat a célokat éri el, a vardecimális tárolási formátum elavult. Az adatbázisok engedélyezése a vardecimális tárolóformátumhoz csak SQL Server 2005 (9.x) verzióban szükséges.

Fontos

Az adatbázis vardecimális tárolóformátumának megváltoztatása befolyásolhatja a mentést és helyreállítást, az adatbázis tükrözését, sp_attach_dba naplóküldést és a replikációt.

Szemantika

sp_db_vardecimal_storage_format
    [ [ @dbname = ] N'dbname' ]
    [ , [ @vardecimal_storage_format = ] 'vardecimal_storage_format' ]
[ ; ]

Arguments

[ @dbname = ] N'dbname'

Az adatbázis neve, amelynek tárolási formátumát meg kell változtatni. @dbname a sysnamealapértelmezett . Ha az adatbázis nevét kihagyjuk, az SQL Server példányában szereplő összes adatbázis vardecimal tárolóformátum státusza jelenik meg.

[ @vardecimal_storage_format = ] 'vardecimal_storage_format'

Megadja, hogy a vardecimal tárolási formátum engedélyezve van-e. @vardecimal_storage_formata varchar(3), alapértelmezett értéke NULL. @vardecimal_storage_format lehet ON vagy OFF. Ha adatbázis nevet adnak meg, de @vardecimal_storage_format kihagyják, a megadott adatbázis aktuális beállítása visszatér.

Ez az érv nem hat az SQL Server 2008 (10.0.x) és későbbi verziókra.

Kódértékek visszaadása

0 (sikeres) vagy 1 (hiba).

Eredményhalmaz

Ha az adatbázis-tároló formátumot nem lehet megváltoztatni, sp_db_vardecimal_storage_format hiba jelenik meg. Ha az adatbázis már a megadott állapotban van, a tárolt eljárásnak nincs hatása.

Ha a @vardecimal_storage_format érv nincs megadva, sp_db_vardecimal_storage_format visszaadja az oszlopokat Database Name és a Vardecimal State.

Megjegyzések

sp_db_vardecimal_storage_format visszaadja a vardecimális állapotot, de nem tudja megváltoztatni a vardecimális állapotot.

sp_db_vardecimal_storage_format a következő esetekben megbukik:

  • Az adatbázisban aktív felhasználók vannak.
  • Az adatbázis lehetővé van a tükrözésre.
  • Az SQL Server kiadása nem támogatja a vardecimal tárolóformátumot.

Ahhoz, hogy a vardecimal tárolóformátum állapotát , OFFaz adatbázist egyszerű helyreállítási modellre kell állítani. Ha egy adatbázist egyszerű helyreállításra állítanak, a naplólánc megszakad. Végezzen teljes adatbázis-mentést, miután beállítottad a vardecimális tárolási formátum állapotot .OFF

Az állapot megváltoztatása OFF sikertelen, ha vannak táblák, amelyek vardecimális adatbázis tömörítést használnak. A tábla tárolási formátumának megváltoztatásához használd a sp_tableoption. Annak meghatározására, hogy egy adatbázisban mely táblák használnak vardecimális tárolási formátumot, használja a OBJECTPROPERTY függvényt, és keresse meg a TableHasVarDecimalStorageFormat tulajdonságot, ahogy az alábbi példában látható.

USE AdventureWorks2022;
GO

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

Példák

A következő kód lehetővé teszi az adatbázis tömörítését AdventureWorks2025 , megerősíti az állapotot, majd tömöríti a tizedes és numerikus oszlopokat a Sales.SalesOrderDetail táblázatban.

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