sp_db_vardecimal_storage_format(Transact-SQL)
데이터베이스의 현재 VarDecimal 저장소 형식 상태를 반환하거나 데이터베이스에 VarDecimal 저장소 형식을 사용하도록 설정합니다. SQL Server 2008에서는 사용자 데이터베이스가 항상 사용하도록 설정되어 있습니다. SQL Server 2005 서비스 팩 2 이상이 필요합니다. VarDecimal 저장소 형식은 SQL Server Enterprise Edition, Developer Edition 및 Evaluation Edition에서만 사용할 수 있습니다.
[!참고]
데이터베이스에 VarDecimal 저장소 형식을 사용하도록 설정하는 작업은 SQL Server 2005에서만 필요합니다.
중요 |
---|
데이터베이스의 VarDecimal 저장소 형식 상태를 변경하면 백업 및 복구, 데이터베이스 미러링, sp_attach_db, 로그 전달 및 복제에 영향을 줄 수 있습니다. VarDecimal 저장소 형식에 대한 자세한 내용은 Decimal 데이터를 가변 길이로 저장을 참조하십시오. |
구문
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을 생략하면 지정한 데이터베이스의 현재 설정이 반환됩니다. 이 인수는 SQL Server 2008 이상 버전에는 영향을 주지 않습니다.
반환 코드 값
0(성공) 또는 1(실패)
결과 집합
데이터베이스 저장소 형식을 변경할 수 없는 경우 sp_db_vardecimal_storage_format에서 오류를 반환합니다. 데이터베이스가 이미 지정한 상태에 있으면 저장 프로시저는 영향을 주지 않습니다.
@vardecimal_storage_format 인수를 지정하지 않으면 Database Name 및 Vardecimal State 열이 반환됩니다.
주의
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 AdventureWorks2008R2 ;
GO
SELECT name, object_id, type_desc
FROM sys.objects
WHERE OBJECTPROPERTY(object_id,
N'TableHasVarDecimalStorageFormat') = 1 ;
GO
예
다음 코드에서는 AdventureWorks2008R2 데이터베이스에 압축을 설정하고 상태를 확인한 다음 Sales.SalesOrderDetail 테이블의 decimal 및 numeric 열을 압축합니다.
USE master ;
GO
EXEC sp_db_vardecimal_storage_format 'AdventureWorks2008R2', 'ON' ;
GO
-- Check the vardecimal storage format state for
-- all databases in the instance.
EXEC sp_db_vardecimal_storage_format ;
GO
USE AdventureWorks2008R2 ;
GO
EXEC sp_tableoption 'Sales.SalesOrderDetail', 'vardecimal storage format', 1 ;
GO