sp_db_vardecimal_storage_format (Transact-SQL)
Gilt für:SQL Server
Gibt den aktuellen vardecimal-Speicherformatstatus einer Datenbank zurück oder aktiviert das vardecimal-Speicherformat für eine Datenbank. Ab SQL Server 2008 (10.0.x) sind Benutzerdatenbanken immer aktiviert. Das Aktivieren von Datenbanken für das Vardecimal-Speicherformat ist nur in SQL Server 2005 (9.x) erforderlich.
Hinweis
SQL Server 2019 (15.x) unterstützt das vardecimal storage format; Da die Komprimierung auf Zeilenebene jedoch dieselben Ziele erreicht, ist das Vardecimal-Speicherformat veraltet. Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden.
Wichtig
Durch Ändern des vardecimal-Speicherformatstatus einer Datenbank können Sicherung und Wiederherstellung, Datenbankspiegelung, sp_attach_db, Protokollversand sowie die Replikation beeinflusst werden.
Syntax
sp_db_vardecimal_storage_format [ [ @dbname = ] 'database_name']
[ , [ @vardecimal_storage_format = ] { 'ON' | 'OFF' } ]
[;]
Argumente
[ @dbname= ] 'database_name'
Der Name der Datenbank, für die das Speicherformat geändert werden soll. database_name ist "sysname" ohne Standard. Wenn der Datenbankname nicht angegeben wird, wird der Status des vardecimal storage format of all the databases in the instance of SQL Server zurückgegeben.
[ @vardecimal_storage_format= ] {'ON'|' OFF'}
Gibt an, ob das vardecimal-Speicherformat aktiviert ist. @vardecimal_storage_format kann ON oder OFF sein. Der Parameter ist varchar(3) ohne Standard. Wenn ein Datenbankname angegeben ist, @vardecimal_storage_format jedoch ausgelassen wird, wird die aktuelle Einstellung der angegebenen Datenbank zurückgegeben.
Wichtig
Dieses Argument hat keine Auswirkungen auf SQL Server 2008 (10.0.x) oder höhere Versionen.
Rückgabecodewerte
„0“ (erfolgreich) oder „1“ (fehlerhaft)
Resultsets
Wenn das Datenbankspeicherformat nicht geändert werden kann, wird von sp_db_vardecimal_storage_format ein Fehler zurückgegeben. Wenn sich die Datenbank bereits im angegebenen Zustand befindet, bleibt die gespeicherte Prozedur ohne Wirkung.
Wenn das @vardecimal_storage_format Argument nicht angegeben wird, werden die Spalten "Datenbankname" und "Vardecimal" zurückgegeben.
Hinweise
sp_db_vardecimal_storage_format gibt den vardecimal-Status zurück, kann den vardecimal-Status aber nicht ändern.
Unter den folgenden Umständen treten für sp_db_vardecimal_storage_format Fehler auf:
In der Datenbank sind aktive Benutzer vorhanden.
Für die Datenbank sind Spiegelungen aktiviert.
Die Edition von SQL Server unterstützt kein vardezimales Speicherformat.
Um den Status des vardecimal storage format in OFF zu ändern, muss eine Datenbank auf ein einfaches Wiederherstellungsmodell festgelegt werden. Wenn eine Datenbank auf das einfache Wiederherstellungsmodell festgelegt ist, wird die Protokollkette unterbrochen. Führen Sie eine vollständige Datenbanksicherung aus, nachdem Sie den vardecimal-Speicherformatstatus auf OFF festgelegt haben.
Der Status kann nicht in OFF geändert werden, wenn für einige Tabellen die vardecimal-Datenbankkomprimierung verwendet wird. Verwenden Sie sp_tableoption, um das Speicherformat einer Tabelle zu ändern. Wenn Sie bestimmen möchten, für welche Tabellen in einer Datenbank das vardecimal-Speicherformat verwendet wird, verwenden Sie die OBJECTPROPERTY
-Funktion, und suchen Sie nach der TableHasVarDecimalStorageFormat
-Eigenschaft, wie im folgenden Beispiel veranschaulicht.
USE AdventureWorks2022;
GO
SELECT name, object_id, type_desc
FROM sys.objects
WHERE OBJECTPROPERTY(object_id,
N'TableHasVarDecimalStorageFormat') = 1 ;
GO
Beispiele
Im folgenden Code werden die Komprimierung in der AdventureWorks2022
-Datenbank aktiviert, der Status bestätigt und anschließend die Spalten decimal und numeric in der Sales.SalesOrderDetail
-Tabelle komprimiert.
USE master ;
GO
EXEC sp_db_vardecimal_storage_format 'AdventureWorks2022', 'ON' ;
GO
-- Check the vardecimal storage format state for
-- all databases in the instance.
EXEC sp_db_vardecimal_storage_format ;
GO
USE AdventureWorks2022;
GO
EXEC sp_tableoption 'Sales.SalesOrderDetail', 'vardecimal storage format', 1 ;
GO
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für