Condividi tramite


sp_db_vardecimal_storage_format (Transact-SQL)

Data creazione: 12 dicembre 2006

Restituisce lo stato corrente del formato di archiviazione vardecimal di un database oppure attiva o disattiva il formato di archiviazione vardecimal per un database. È richiesto SQL Server 2005 Service Pack 2 o versioni successive. Il formato di archiviazione vardecimal è disponibile solo in SQL Server 2005 Enterprise, Developer ed Evaluation Edition.

Bb326653.note(it-it,SQL.90).gifImportante:
La modifica dello stato del formato di archiviazione vardecimal di un database può influire su backup e ripristino, mirroring del database, sp_attach_db, distribuzione dei log e replica. Per informazioni sul formato di archiviazione vardecimal, vedere Archiviazione di dati decimal come lunghezza variabile.

Sintassi

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

Argomenti

  • [ @dbname= ] 'database'
    Nome del database per il quale deve essere modificato il formato di archiviazione. database è di tipo sysname e non prevede alcun valore predefinito. Se il nome del database viene omesso, vengono restituiti gli stati del formato di archiviazione vardecimal di tutti i database nell'istanza di SQL Server.
  • [ @vardecimal_storage_format = ] {'ON'|'OFF'}
    Specifica se il formato di archiviazione vardecimal è attivato. @vardecimal_storage_format può essere ON oppure OFF. Il parametro è di tipo varchar(3) e non prevede alcun valore predefinito. Se viene specificato il nome di un database ma viene omesso @vardecimal_storage_format, viene restituita l'impostazione corrente del database specificato.

Set di risultati

Se il formato di archiviazione del database non può essere modificato, sp_db_vardecimal_storage_format restituisce un errore. Se lo stato corrente del database corrisponde a quello specificato, la stored procedure non produce alcun effetto.

Osservazioni

sp_db_vardecimal_storage_format avrà esito negativo nelle circostanze seguenti:

  • Non sono presenti utenti attivi nel database.
  • È attivato il mirroring del database.
  • L'edizione di SQL Server non supporta il formato di archiviazione vardecimal.

Per modificare lo stato del formato di archiviazione vardecimal in OFF, è necessario che un database sia impostato sulla modalità di recupero con registrazione minima. In caso di impostazione di un database su tale modalità, la catena di log è interrotta. Dopo aver impostato lo stato del formato di archiviazione vardecimal su OFF, eseguire un backup completo del database.

La modifica dello stato in OFF avrà esito negativo se sono presenti tabelle in cui viene utilizzata la compressione di database di tipo vardecimal. Pre modificare il formato di archiviazione di una tabella, utilizzare sp_tableoption. Per determinare le tabelle di un database in cui viene utilizzato il formato di archiviazione vardecimal, utilizzare la funzione OBJECTPROPERTY e cercare la proprietà TableHasVarDecimalStorageFormat, come illustrato nell'esempio seguente.

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

Autorizzazioni

È richiesta l'autorizzazione ALTER DATABASE.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Esempi

Nell'esempio seguente viene attivata la compressione nel database AdventureWorks, viene verificato lo stato e quindi vengono compresse le colonne decimal e numeric della tabella Sales.SalesOrderDetail.

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

Vedere anche

Riferimento

Stored procedure del Motore di database (Transact-SQL)

Altre risorse

Archiviazione di dati decimal come lunghezza variabile

Guida in linea e informazioni

Assistenza su SQL Server 2005