Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Zwraca aktualny stan formatu pamięci wardziesiętnej bazy danych lub umożliwia bazę danych do przechowywania wardziesiętnego . W SQL Server 2008 (10.0.x) i późniejszych wersjach bazy danych użytkowników są zawsze włączone. Jednak ponieważ kompresja na poziomie wiersza osiąga te same cele, format pamięci desętnej zostaje wycofany. Umożliwienie baz danych dla formatu pamięci desętnej jest konieczne tylko w SQL Server 2005 (9.x).
Ważne
Zmiana stanu formatu pamięci bazowej wardecymalnej może wpłynąć na kopie zapasowe i odzyskiwanie, mirroring bazy danych, sp_attach_dbwysyłkę logów oraz replikację.
Składnia
sp_db_vardecimal_storage_format
[ [ @dbname = ] N'dbname' ]
[ , [ @vardecimal_storage_format = ] 'vardecimal_storage_format' ]
[ ; ]
Arguments
[ @dbname = ] N'dbname'
Nazwa bazy danych, dla której format pamięci ma zostać zmieniony.
@dbname jest nazwa systemu, z wartością domyślną NULL. Jeśli nazwa bazy danych zostanie pominięta, zwracany jest status formatu pamięci desętnej wszystkich baz danych w instancji SQL Server.
[ @vardecimal_storage_format = ] 'vardecimal_storage_format'
Określa, czy format pamięci desętnej jest włączony.
@vardecimal_storage_format to varchar(3), z domyślnym .NULL
@vardecimal_storage_format może być lub ONOFF. Jeśli podana jest nazwa bazy danych, ale @vardecimal_storage_format pominięta, zwracane jest aktualne ustawienie określonej bazy.
Ten argument nie ma wpływu na SQL Server 2008 (10.0.x) i późniejsze wersje.
Zwracanie wartości kodu
0 (powodzenie) lub 1 (niepowodzenie).
Zestaw wyników
Jeśli format pamięci danych nie może zostać zmieniony, sp_db_vardecimal_storage_format zwraca błąd. Jeśli baza danych jest już w określonym stanie, procedura przechowywana nie ma wpływu.
Jeśli argument @vardecimal_storage_format nie jest podany, sp_db_vardecimal_storage_format zwraca kolumny Database Name i .Vardecimal State
Uwagi
sp_db_vardecimal_storage_format zwraca stan wardziesiętny , ale nie może zmienić stanu wardziesiętnego .
sp_db_vardecimal_storage_format nie spełnia sukcesu w następujących okolicznościach:
- W bazie danych są aktywni użytkownicy.
- Baza danych jest włączona do lustrzanego odbicia.
- Wersja SQL Server nie obsługuje formatu pamięci desętnej.
Aby zmienić stan formatu pamięci desętnej na , OFFbaza danych musi być ustawiona na prosty model odzyskiwania. Gdy baza danych jest ustawiona na proste odzyskiwanie, łańcuch logów zostaje przerwany. Wykonaj pełną kopię zapasową bazy danych po ustawieniu stanu formatu pamięci desętnej na .OFF
Zmiana stanu na nie OFF wypada z błędem, jeśli istnieją tabele wykorzystujące kompresję bazy danych wardecymalnych . Aby zmienić format przechowywania tabeli, użyj sp_tableoption. Aby określić, które tabele w bazie danych korzystają z formatu pamięci desętnej, użyj OBJECTPROPERTY funkcji i wyszukaj tę TableHasVarDecimalStorageFormat właściwość, jak pokazano w poniższym przykładzie.
USE AdventureWorks2022;
GO
SELECT name,
object_id,
type_desc
FROM sys.objects
WHERE OBJECTPROPERTY(object_id, N'TableHasVarDecimalStorageFormat') = 1;
GO
Przykłady
Poniższy kod umożliwia kompresję w bazie AdventureWorks2025 danych, potwierdza stan, a następnie kompresuje kolumny dziesiętne i liczbowe w tabeli Sales.SalesOrderDetail .
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
Treści powiązane
- procedury składowane aparatu bazy danych (Transact-SQL)