sp_db_vardecimal_storage_format (Transact-SQL)
新規 : 2006 年 12 月 12 日
データベースの vardecimal ストレージ形式の現在の状態を返します。または、データベースで vardecimal ストレージ形式を有効または無効にします。SQL Server 2005 Service Pack 2 以降が必要です。vardecimal ストレージ形式は、SQL Server 2005 Enterprise Edition、Developer Edition、および Evaluation Edition でのみ使用できます。
重要 : |
---|
データベースの vardecimal ストレージ形式の状態を変更すると、バックアップとリカバリ、データベース ミラーリング、sp_attach_db、ログ配布、レプリケーションに影響が生じることがあります。vardecimal ストレージ形式の詳細については、「decimal データの可変長での格納」を参照してください。 |
構文
sp_db_vardecimal_storage_format [ [ @dbname = ] 'database' ]
[ , [ @vardecimal_storage_format = ] {'ON' | 'OFF' }] [ ; ]
引数
- [ @dbname= ] 'database'
ストレージ形式を変更するデータベースの名前を指定します。database のデータ型は sysname で、既定値はありません。データベースの名前を省略した場合は、SQL Server インスタンスにあるすべてのデータベースについて、vardecimal ストレージ形式の状態が返されます。
- [ @vardecimal_storage_format = ] {'ON'|'OFF'}
vardecimal ストレージ形式を有効にするかどうかを指定します。@vardecimal_storage_format を ON または OFF にできます。このパラメータのデータ型は varchar(3) で、既定値はありません。データベース名を指定しても @vardecimal_storage_format を省略した場合は、指定したデータベースの現在の設定が返されます。
結果セット
データベースのストレージ形式を変更できない場合、sp_db_vardecimal_storage_format はエラーを返します。データベースが既に指定した状態にある場合、ストアド プロシージャによる影響はありません。
解説
次の場合、sp_db_vardecimal_storage_format は失敗します。
- データベースにアクティブなユーザーがいる場合
- データベースのミラーリングが有効である場合
- SQL Server が vardecimal ストレージ形式をサポートしていないバージョンの場合
vardecimal ストレージ形式の状態を OFF に変更するには、データベースを単純復旧モードに設定する必要があります。データベースを単純復旧モードに設定した場合、ログ チェーンは分断されます。vardecimal ストレージ形式の状態を OFF に設定した後は、完全データベース バックアップを実行してください。
vardecimal データベース圧縮を使用しているテーブルがある場合、状態を OFF に変更しようとすると失敗します。テーブルのストレージ形式を変更するには sp_tableoption を使用してください。データベースのテーブルが vardecimal ストレージ形式を使用しているかどうかを調べるには、次の例のように OBJECTPROPERTY
関数を使用して TableHasVarDecimalStorageFormat
プロパティを探します。
USE AdventureWorks ;
GO
SELECT name, object_id, type_desc
FROM sys.objects
WHERE OBJECTPROPERTY(object_id,
N'TableHasVarDecimalStorageFormat') = 1 ;
GO
権限
ALTER DATABASE 権限が必要です。
戻り値
0 (成功) または 1 (失敗)
例
次の例では、AdventureWorks
データベースで圧縮を有効にして状態を確認した後、Sales.SalesOrderDetail
テーブルの decimal および numeric 列を圧縮します。
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
参照
関連項目
データベース エンジンのストアド プロシージャ (Transact-SQL)