sp_db_vardecimal_storage_format (Transact-SQL)

Neu: 12. Dezember 2006

Gibt den aktuellen vardecimal-Speicherformatstatus einer Datenbank zurück oder aktiviert bzw. deaktiviert das vardecimal-Speicherformat für eine Datenbank. Hierfür ist SQL Server 2005 Service Pack 2 oder eine höhere Version erforderlich. Das vardecimal-Speicherformat ist nur in den Editionen SQL Server 2005 Enterprise, Developer und Evaluation verfügbar.

Bb326653.note(de-de,SQL.90).gifWichtig:
Durch Ändern des vardecimal-Speicherformatstatus einer Datenbank können Sicherung und Wiederherstellung, Datenbankspiegelung, sp_attach_db, Protokollversand sowie die Replikation beeinflusst werden. Informationen zum vardecimal-Speicherformat finden Sie unter Speichern von Dezimaldaten als Daten variabler Länge.

Syntax

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

Argumente

  • [ @dbname= ] 'database'
    Der Name der Datenbank, für die das Speicherformat geändert werden soll. database ist ein Wert vom Datentyp sysname und weist keinen Standardwert auf. Wenn der Datenbankname ausgelassen wird, werden die vardecimal-Speicherformatstatus aller Datenbanken in der Instanz von 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 entspricht varchar(3) und weist keinen Standardwert auf. Wenn ein Datenbankname angegeben ist, @vardecimal_storage_format jedoch ausgelassen wird, wird die aktuelle Einstellung der angegebenen Datenbank zurückgegeben.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

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.

Hinweise

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.
  • In der Edition von SQL Server wird das vardecimal-Speicherformat nicht unterstützt.

Wenn der vardecimal-Speicherformatstatus in OFF geändert werden soll, muss eine Datenbank auf den einfachen Wiederherstellungsmodus festgelegt werden. Wenn eine Datenbank auf den einfachen Wiederherstellungsmodus 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 zum Ändern des Speicherformats einer Tabelle sp_tableoption. 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 AdventureWorks ;
GO
SELECT name, object_id, type_desc
FROM sys.objects 
 WHERE OBJECTPROPERTY(object_id, 
   N'TableHasVarDecimalStorageFormat') = 1 ;
GO

Berechtigungen

Die ALTER DATABASE-Berechtigung ist erforderlich.

Beispiele

Im folgenden Beispiel werden die Komprimierung in der AdventureWorks-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 'AdventureWorks', 'ON' ;
GO

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

USE AdventureWorks ;
GO

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

Siehe auch

Verweis

Gespeicherte Prozeduren für das Datenbankmodul (Transact-SQL)

Andere Ressourcen

Speichern von Dezimaldaten als Daten variabler Länge

Hilfe und Informationen

Informationsquellen für SQL Server 2005