sp_db_vardecimal_storage_format (języka Transact-SQL)

Zwraca bieżący format magazynu vardecimal stan bazy danych lub włącza bazy danych dla formatu magazynu vardecimal.W SQL Server 2008, baz danych użytkowników są zawsze włączone.Wymaga SQL Server 2005, Z dodatkiem Service Pack 2 lub nowszego. Jest dostępna tylko w formacie przechowywania Vardecimal SQL Server wersji Enterprise, Developer i oceny.

Ostrzeżenie

Włączanie bazy danych dla formatu magazynu vardecimal tylko niezbędne jest w SQL Server 2005.

Ważna informacjaWażne:

Zmiana stanu vardecimal magazynu format bazy danych może mieć wpływ na kopia zapasowa i odzyskiwanie, dublowanie bazy danych, sp_attach_db, wysyłanie dziennikai replikacja.Zobacz informacje o formacie przechowywania vardecimal Przechowywanie danych dziesiętne jako o zmiennej długości.

Składnia

sp_db_vardecimal_storage_format [ [ @dbname = ] 'database_name'] 
    [ , [ @vardecimal_storage_format = ] { 'ON' | 'OFF' } ] 
[;]

Argumenty

  • [ @dbname= ] 'database_name'
    Jest to nazwa bazy danych, dla którego ma zostać zmieniony format przechowywania.database_namejest sysname, z braku domyślne.Jeżeli pominięto nazwę bazy danych magazynu vardecimal formatowania stan wszystkich baz danych w wystąpienie SQL Server są zwracane.

  • [ @vardecimal_storage_format= ] {'ON'|'OFF'}
    Określa, czy jest włączony format magazynu vardecimal.@vardecimal_storage_formatmoże być ON lub OFF.Parametr jest varchar(3), z braku domyślne.Jeśli jest podana nazwa bazy danych, ale @vardecimal_storage_format jest pominięty, bieżące ustawienie określonej bazy danych zostanie zwrócona.Ten argument nie ma wpływu SQL Server 2008 lub nowszej wersji.

Wartości kodów powrotnych

0 (sukces) lub 1 (błąd)

Zestawy wyników

Jeśli nie można zmienić formatu bazy danych magazynu, sp_db_vardecimal_storage_format zwraca błąd.Jeśli baza danych jest już określony stan, procedura składowana nie ma znaczenia.

Jeśli @vardecimal_storage_format argument nie zostanie podana, zwraca kolumny Database Name i Vardecimal State.

Uwagi

sp_db_vardecimal_storage_formatzwraca stan vardecimal, ale nie można zmienić stanu vardecimal.

sp_db_vardecimal_storage_formatNiepowodzenie w następujących okolicznościach:

  • Brak aktywnych użytkowników bazy danych.

  • Baza danych jest włączony do dublowanie.

  • Wydanie z SQL Server nie obsługuje formatu magazynu vardecimal.

Aby zmienić stan formatu magazynu vardecimal OFF, baza danych musi być zestaw tryb prosty odzyskiwanie .Gdy baza danych jest zestaw tryb prosty odzyskiwanie , łańcuch dzienników jest przerywane.Wykonywanie pełnej kopia zapasowa po zestaw Państwo vardecimal magazynu format do OFF.

Zmiana stanu na OFF zakończy się niepowodzeniem w przypadku tabel przy użyciu kompresji bazy danych vardecimal.Aby zmienić format przechowywania tabela, użyj sp_tableoption.Aby określić, które tabele w bazie danych jest używany format przechowywania vardecimal, użyj OBJECTPROPERTY funkcja and search for TableHasVarDecimalStorageFormat właściwość, jak pokazano w następującym przykładzie.

USE AdventureWorks2008R2 ;
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 kompresji w AdventureWorks2008R2 bazy danych, potwierdza stanu i kompresuje decimal i numeric kolumn w Sales.SalesOrderDetail tabela.

USE master ;
GO

EXEC sp_db_vardecimal_storage_format 'AdventureWorks2008R2', 'ON' ;
GO

-- Check the vardecimal storage format state for
-- all databases in the instance.
EXEC sp_db_vardecimal_storage_format ;
GO

USE AdventureWorks2008R2 ;
GO

EXEC sp_tableoption 'Sales.SalesOrderDetail', 'vardecimal storage format', 1 ;
GO