sp_db_vardecimal_storage_format(Transact-SQL)

적용 대상:SQL Server

데이터베이스의 현재 vardecimal 스토리지 형식 상태를 반환하거나 vardecimal 스토리지 형식에 대해 데이터베이스를 사용하도록 설정합니다. SQL Server 2008(10.0.x)부터 사용자 데이터베이스는 항상 사용하도록 설정됩니다. vardecimal 스토리지 형식에 대해 데이터베이스를 사용하도록 설정하는 것은 SQL Server 2005(9.x)에서만 필요합니다.

참고 항목

SQL Server 2019(15.x)는 vardecimal 스토리지 형식을 지원합니다. 그러나 행 수준 압축은 동일한 목표를 달성하기 때문에 vardecimal 스토리지 형식은 더 이상 사용되지 않습니다. 이 기능은 이후 버전의 SQL Server에서 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요.

Important

데이터베이스의 vardecimal 스토리지 형식 상태를 변경하면 백업 및 복구, 데이터베이스 미러, sp_attach_db, 로그 전달 및 복제본(replica) 영향을 줄 수 있습니다.

구문

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 생략되면 지정된 데이터베이스의 현재 설정이 반환됩니다.

Important

이 인수는 SQL Server 2008(10.0.x) 이상 버전에는 영향을 주지 않습니다.

반환 코드 값

0(성공) 또는 1(실패)

결과 집합

데이터베이스 스토리지 형식을 변경할 수 없으면 sp_db_vardecimal_storage_format 오류를 반환합니다. 데이터베이스가 이미 지정된 상태이면 저장 프로시저가 적용되지 않습니다.

인수가 @vardecimal_storage_format 제공되지 않으면 데이터베이스 이름 및 Vardecimal 상태 열을 반환합니다.

설명

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  

참고 항목

데이터베이스 엔진 저장 프로시저(Transact-SQL)