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. Dimulai dengan SQL Server 2008 (10.0.x), database pengguna selalu diaktifkan. Mengaktifkan database untuk format penyimpanan vardecimal hanya diperlukan di SQL Server 2005 (9.x).

Catatan

SQL Server 2019 (15.x) mendukung format penyimpanan vardecimal; namun, karena kompresi tingkat baris mencapai tujuan yang sama, format penyimpanan vardecimal tidak digunakan lagi. Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini.

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 = ] 'database_name']   
    [ , [ @vardecimal_storage_format = ] { 'ON' | 'OFF' } ]   
[;]  

Argumen

[ @dbname= ] 'database_name'
Adalah nama database yang format penyimpanannya akan diubah. database_name adalah sysname, tanpa default. Jika nama database dihilangkan, status format penyimpanan vardecimal dari semua database dalam instans SQL Server dikembalikan.

[ @vardecimal_storage_format= ] {'ON'|' OFF'}
Menentukan apakah format penyimpanan vardecimal diaktifkan. @vardecimal_storage_format dapat AKTIF atau NONAKTIF. Parameternya adalah varchar(3), tanpa default. Jika nama database disediakan tetapi @vardecimal_storage_format dihilangkan, pengaturan database yang ditentukan saat ini dikembalikan.

Penting

Argumen ini tidak berpengaruh pada SQL Server 2008 (10.0.x) atau versi yang lebih baru.

Mengembalikan Nilai Kode

0 (keberhasilan) 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.

@vardecimal_storage_format Jika argumen tidak disediakan, mengembalikan kolom Nama Database dan Status Vardecimal.

Keterangan

sp_db_vardecimal_storage_format mengembalikan status vardecimal tetapi tidak dapat mengubah status vardecimal.

sp_db_vardecimal_storage_format akan 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 ke NONAKTIF, database harus diatur ke model pemulihan sederhana. Saat database diatur ke model pemulihan sederhana, rantai log rusak. Lakukan pencadangan database lengkap setelah Anda mengatur status format penyimpanan vardecimal ke NONAKTIF.

Mengubah status ke NONAKTIF akan 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  

Lihat Juga

Prosedur Tersimpan Mesin Database (Transact-SQL)