Aracılığıyla paylaş


sp_db_vardecimal_storage_format (Transact-SQL)

Şunlar için geçerlidir: SQL Server

Bir veritabanının mevcut vardecimal depolama formatı durumunu döndürür veya vardesimal depolama formatı için bir veritabanını etkinleştirir. SQL Server 2008 (10.0.x) ve sonraki sürümlerde kullanıcı veritabanları her zaman etkin durumdadır. Ancak, satır düzeyinde sıkıştırma aynı hedeflere ulaştığı için, vardesimal depolama formatı kullanımdan kaldırılmıştır. Vardecimal depolama formatı için veritabanlarını etkinleştirmek yalnızca SQL Server 2005 (9.x)'de gereklidir.

Önemli

Bir veritabanının vardecimal depolama formatı durumunu değiştirmek, yedekleme ve kurtarma, veritabanı aynalama, sp_attach_dbgünlük gönderimi ve çoğaltmayı etkileyebilir.

Sözdizimi

sp_db_vardecimal_storage_format
    [ [ @dbname = ] N'dbname' ]
    [ , [ @vardecimal_storage_format = ] 'vardecimal_storage_format' ]
[ ; ]

Arguments

[ @dbname = ] N'dbname'

Depolama formatının değiştirileceği veritabanının adı. @dbname, varsayılanı ile sysname. Veritabanı adı atlanırsa, SQL Server örneğindeki tüm veritabanlarının vardecimal depolama formatı durumu döner.

[ @vardecimal_storage_format = ] 'vardecimal_storage_format'

Vardecimal depolama formatının etkin olup olmadığını belirtir. @vardecimal_storage_formatvarchar(3)'dür ve varsayılan olarak .NULL @vardecimal_storage_format olabilir ON ya da OFF. Veritabanı adı sağlanırsa ancak @vardecimal_storage_format atlanırsa, belirtilen veritabanının mevcut ayarı döner.

Bu argüman, SQL Server 2008 (10.0.x) ve sonraki sürümler üzerinde hiçbir etkisi yoktur.

Dönüş kodu değerleri

0 (başarı) veya 1 (başarısızlık).

Sonuç kümesi

Veritabanı depolama formatı değiştirilemiyorsa, sp_db_vardecimal_storage_format hata döner. Veritabanı zaten belirtilen durumdaysa, saklanan prosedürün etkisi yoktur.

Eğer @vardecimal_storage_format argümanı sağlanmazsa, sp_db_vardecimal_storage_format sütunları Database Name ve .Vardecimal State

Açıklamalar

sp_db_vardecimal_storage_format vardecimal durumu döndürür, ancak vardesimal durumu değiştiremez.

sp_db_vardecimal_storage_format aşağıdaki koşullarda başarısız olur:

  • Veritabanında aktif kullanıcılar var.
  • Veritabanı yansıtma için etkinleştirilmiştir.
  • SQL Server sürümü vardecimal depolama formatını desteklemez.

Vardecimal depolama formatı durumunu değiştirmek OFFiçin bir veritabanı basit kurtarma modeline ayarlanmalıdır. Bir veritabanı basit kurtarma olarak ayarlandığında, log zinciri bozulur. Vardecimal depolama formatı durumunu ayarladıktan OFFsonra tam bir veritabanı yedeklemesi yapın.

Vardecimal veritabanı sıkıştırması kullanan tablolar varsa durumu değiştirmek OFF başarısız olur. Bir tablonun depolama formatını değiştirmek için sp_tableoption kullanın. Veritabanındaki hangi tabloların vardecimal depolama formatı kullandığını belirlemek için, aşağıdaki örnekte gösterildiği gibi özelliği OBJECTPROPERTY arayın ve fonksiyonu TableHasVarDecimalStorageFormat kullanın.

USE AdventureWorks2022;
GO

SELECT name,
       object_id,
       type_desc
FROM sys.objects
WHERE OBJECTPROPERTY(object_id, N'TableHasVarDecimalStorageFormat') = 1;
GO

Örnekler

Aşağıdaki kod, veritabanında AdventureWorks2025 sıkıştırmayı sağlar, durumu doğrular ve ardından tablodaki Sales.SalesOrderDetail ondalık ve sayısal sütunları sıkıştırır.

USE master;
GO

EXECUTE sp_db_vardecimal_storage_format 'AdventureWorks2022', 'ON';
GO

-- Check the vardecimal storage format state for
-- all databases in the instance.
EXECUTE sp_db_vardecimal_storage_format;
GO

USE AdventureWorks2022;
GO

EXECUTE sp_tableoption 'Sales.SalesOrderDetail', 'vardecimal storage format', 1;
GO