sp_db_vardecimal_storage_format (T-SQL)
Berlaku untuk: SQL Server
Mengembalikan status format penyimpanan vardecimal database saat ini atau mengaktifkan database untuk format penyimpanan vardecimal. Di SQL Server 2008 (10.0.x) dan versi yang lebih baru, database pengguna selalu diaktifkan. Namun, karena kompresi tingkat baris mencapai tujuan yang sama, format penyimpanan vardecimal tidak digunakan lagi. Mengaktifkan database untuk format penyimpanan vardecimal hanya diperlukan di SQL Server 2005 (9.x).
Penting
Mengubah status format penyimpanan vardecimal database dapat memengaruhi pencadangan dan pemulihan, pencerminan database, sp_attach_db
pengiriman log, dan replikasi.
Sintaks
sp_db_vardecimal_storage_format
[ [ @dbname = ] N'dbname' ]
[ , [ @vardecimal_storage_format = ] 'vardecimal_storage_format' ]
[ ; ]
Argumen
[ @dbname = ] N'dbname'
Nama database yang format penyimpanannya akan diubah. @dbname adalah sysname, dengan default NULL
. Jika nama database dihilangkan, status format penyimpanan vardecimal dari semua database dalam instans SQL Server dikembalikan.
[ @vardecimal_storage_format = ] 'vardecimal_storage_format'
Menentukan apakah format penyimpanan vardecimal diaktifkan. @vardecimal_storage_format adalah varchar(3), dengan default NULL
. @vardecimal_storage_format bisa ON
atau OFF
. Jika nama database disediakan tetapi @vardecimal_storage_format dihilangkan, pengaturan database yang ditentukan saat ini dikembalikan.
Argumen ini tidak berpengaruh pada SQL Server 2008 (10.0.x) dan versi yang lebih baru.
Mengembalikan nilai kode
0
(berhasil) atau 1
(kegagalan).
Tataan hasil
Jika format penyimpanan database tidak dapat diubah, sp_db_vardecimal_storage_format
mengembalikan kesalahan. Jika database sudah dalam status yang ditentukan, prosedur tersimpan tidak berpengaruh.
Jika argumen @vardecimal_storage_format tidak disediakan, sp_db_vardecimal_storage_format
mengembalikan kolom Database Name
dan Vardecimal State
.
Keterangan
sp_db_vardecimal_storage_format
mengembalikan status vardecimal , tetapi tidak dapat mengubah status vardecimal .
sp_db_vardecimal_storage_format
gagal dalam keadaan berikut:
- Ada pengguna aktif dalam database.
- Database diaktifkan untuk pencerminan.
- Edisi SQL Server tidak mendukung format penyimpanan vardecimal .
Untuk mengubah status format penyimpanan vardecimal menjadi OFF
, database harus diatur ke model pemulihan sederhana. Saat database diatur ke pemulihan sederhana, rantai log rusak. Lakukan pencadangan database lengkap setelah Anda mengatur status format penyimpanan vardecimal ke OFF
.
Mengubah status menjadi OFF
gagal jika ada tabel yang menggunakan pemadatan database vardecimal . Untuk mengubah format penyimpanan tabel, gunakan sp_tableoption. Untuk menentukan tabel mana dalam database yang menggunakan format penyimpanan vardecimal , gunakan OBJECTPROPERTY
fungsi dan cari TableHasVarDecimalStorageFormat
properti , seperti yang ditunjukkan dalam contoh berikut.
USE AdventureWorks2022;
GO
SELECT name,
object_id,
type_desc
FROM sys.objects
WHERE OBJECTPROPERTY(object_id, N'TableHasVarDecimalStorageFormat') = 1;
GO
Contoh
Kode berikut mengaktifkan pemadatan dalam AdventureWorks2022
database, mengonfirmasi status, lalu memadatkan kolom desimal dan numerik dalam Sales.SalesOrderDetail
tabel.
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