sp_db_vardecimal_storage_format (Transact-SQL)
適用於:SQL Server
傳回資料庫目前的 vardecimal 儲存格式狀態,或啟用 vardecimal 儲存格式的資料庫。 從 SQL Server 2008 (10.0.x) 開始,一律會啟用用戶資料庫。 只有在 SQL Server 2005 (9.x) 中才需要啟用 vardecimal 記憶體格式的資料庫。
注意
SQL Server 2019 (15.x) 支援 vardecimal 儲存格式;不過,因為數據列層級壓縮達到相同的目標,因此 vardecimal 儲存格式已被取代。 SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。
重要
變更資料庫的 vardecimal 記憶體格式狀態可能會影響備份和復原、資料庫鏡像、sp_attach_db、記錄傳送和複寫。
語法
sp_db_vardecimal_storage_format [ [ @dbname = ] 'database_name']
[ , [ @vardecimal_storage_format = ] { 'ON' | 'OFF' } ]
[;]
引數
[ @dbname= ] 'database_name'
這是要變更記憶體格式的資料庫名稱。 database_name為 sysname,沒有預設值。 如果省略資料庫名稱,則會傳回 SQL Server 實例中所有資料庫的 vardecimal 記憶體格式狀態。
[ @vardecimal_storage_format= ] {'ON'|'OFF'}
指定是否啟用 vardecimal 儲存格式。 @vardecimal_storage_format 可以是 ON 或 OFF。 參數為 varchar(3),沒有預設值。 如果提供資料庫名稱但 @vardecimal_storage_format 省略,則會傳回指定資料庫的目前設定。
重要
此自變數對 SQL Server 2008 (10.0.x) 或更新版本沒有任何影響。
傳回碼值
0 (成功) 或 1 (失敗)
結果集
如果無法變更資料庫記憶體格式,sp_db_vardecimal_storage_format會傳回錯誤。 如果資料庫已經處於指定狀態,預存程式就不會有任何作用。
如果未提供 自 @vardecimal_storage_format 變數,則會傳回 [資料庫名稱] 和 [Vardecimal State] 數據行。
備註
sp_db_vardecimal_storage_format傳回 vardecimal 狀態,但無法變更 vardecimal 狀態。
在下列情況下,sp_db_vardecimal_storage_format將會失敗:
資料庫中有作用中的使用者。
資料庫已啟用鏡像。
SQL Server 版本不支援 vardecimal 記憶體格式。
若要將 vardecimal 記憶體格式狀態變更為 OFF,資料庫必須設定為簡單的恢復模式。 當資料庫設定為簡單恢復模式時,記錄鏈結會中斷。 將 vardecimal 記憶體格式狀態設定為 OFF 之後,請執行完整資料庫備份。
如果有使用 vardecimal 資料庫壓縮的數據表,將狀態變更為 OFF 將會失敗。 若要變更數據表的儲存格式,請使用 sp_tableoption。 若要判斷資料庫中哪些數據表使用 vardecimal 儲存格式,請使用 函 OBJECTPROPERTY
式並搜尋 TableHasVarDecimalStorageFormat
屬性,如下列範例所示。
USE AdventureWorks2022;
GO
SELECT name, object_id, type_desc
FROM sys.objects
WHERE OBJECTPROPERTY(object_id,
N'TableHasVarDecimalStorageFormat') = 1 ;
GO
範例
下列程式代碼會啟用資料庫中的 AdventureWorks2022
壓縮、確認狀態,然後壓縮數據表中的 Sales.SalesOrderDetail
十進位和數值數據行。
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
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應