다음을 통해 공유


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 기본값인 varchar(3)NULL. @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 않으면 열과 Database Name을 반환합니다Vardecimal State.

설명

sp_db_vardecimal_storage_formatvardecimal 상태를 반환하지만 vardecimal 상태를 변경할 수 없습니다.

sp_db_vardecimal_storage_format 는 다음과 같은 상황에서 실패합니다.

  • 데이터베이스에 활성 사용자가 있습니다.
  • 데이터베이스를 미러링에 사용할 수 있는 경우
  • SQL Server 버전은 vardecimal 스토리지 형식을 지원하지 않습니다.

vardecimalOFF하려면 데이터베이스를 단순 복구 모델로 설정해야 합니다. 데이터베이스가 단순 복구로 설정되면 로그 체인이 끊어집니다. 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

예제

다음 코드는 데이터베이스에서 압축을 AdventureWorks2025 사용하도록 설정하고, 상태를 확인한 다음, 테이블의 소수 열과 숫자 열을 압축합니다 Sales.SalesOrderDetail .

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