다음을 통해 공유


sp_db_vardecimal_storage_format(Transact-SQL)

적용 대상: SQL Server

데이터베이스의 현재 vardecimal 스토리지 형식 상태를 반환하거나 vardecimal 스토리지 형식에 대해 데이터베이스를 사용하도록 설정합니다. SQL Server 2008(10.0.x) 이상 버전에서는 사용자 데이터베이스가 항상 사용하도록 설정됩니다. 그러나 행 수준 압축은 동일한 목표를 달성하기 때문에 vardecimal 스토리지 형식은 더 이상 사용되지 않습니다. vardecimal 스토리지 형식에 대해 데이터베이스를 사용하도록 설정하는 것은 SQL Server 2005(9.x)에서만 필요합니다.

Important

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

구문

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

인수

[ @dbname = ] N'dbname'

스토리지 형식을 변경할 데이터베이스의 이름입니다. @dbname sysname이며 기본값은 .입니다NULL. 데이터베이스 이름을 생략 하면 SQL Server 인스턴스에 있는 모든 데이터베이스의 vardecimal 스토리지 형식 상태가 반환됩니다.

[ @vardecimal_storage_format = ] 'vardecimal_storage_format'

vardecimal 스토리지 형식을 사용할 수 있는지 여부를 지정합니다. @vardecimal_storage_format 기본값NULL인 varchar(3)입니다. @vardecimal_storage_format 수 ON 있습니다.OFF 데이터베이스 이름이 제공되지만 @vardecimal_storage_format 생략하면 지정된 데이터베이스의 현재 설정이 반환됩니다.

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

반환 코드 값

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

결과 집합

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

@vardecimal_storage_format 인수가 제공되지 sp_db_vardecimal_storage_format 않으면 열과 Vardecimal State을 반환합니다Database Name.

설명

sp_db_vardecimal_storage_formatvardecimal 상태를 반환하지만 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