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 中可用。

Bb326653.note(zh-cn,SQL.90).gif重要提示:
更改数据库的 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,则返回指定数据库的当前设置。

返回代码值

0(成功)或 1(失败)

结果集

如果无法更改数据库存储格式,则 sp_db_vardecimal_storage_format 返回错误。如果数据库已处于指定的状态,则此存储过程无效。

备注

在以下情况下,sp_db_vardecimal_storage_format 将失败:

  • 数据库中有活动用户。
  • 已启用数据库进行镜像。
  • SQL Server 的版本不支持 vardecimal 存储格式。

若要将 vardecimal 存储格式状态更改为 OFF,必须将数据库设置为简单恢复模式。将数据库设置为简单恢复模式时,日志链将断开。在将 vardecimal 存储格式状态设置为 OFF 后,请执行完整数据库备份。

如果有表使用 vardecimal 数据库压缩,则将 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 权限。

示例

下例将在 AdventureWorks 数据库中启用压缩,随后确认此状态,然后压缩 Sales.SalesOrderDetail 表中的 decimalnumeric 列。

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)

其他资源

将 Decimal 数据存储为可变长度类型

帮助和信息

获取 SQL Server 2005 帮助