sys.sp_cdc_get_ddl_history(Transact-SQL)
지정한 캡처 인스턴스에 대해 변경 데이터 캡처를 사용하도록 설정한 시점부터의 캡처 인스턴스 관련 DDL(데이터 정의 언어) 변경 기록을 반환합니다. 변경 데이터 캡처는 SQL Server 2008 Enterprise Edition, Developer Edition 및 Evaluation Edition에서만 사용할 수 있습니다.
구문
sys.sp_cdc_get_ddl_history [ @capture_instance = ] 'capture_instance'
인수
- [ @capture\_instance = ] 'capture_instance'
원본 테이블과 연관된 캡처 인스턴스의 이름입니다. capture_instance는 sysname이며 NULL일 수 없습니다.
반환 코드 값
0(성공) 또는 1(실패)
결과 집합
열 이름 |
데이터 형식 |
설명 |
---|---|---|
source_schema |
sysname |
원본 테이블 스키마의 이름입니다. |
source_table |
sysname |
원본 테이블의 이름입니다. |
capture_instance |
sysname |
캡처 인스턴스의 이름입니다. |
required_column_update |
bit |
DDL 변경 시에 원본 열에서 변경된 데이터 형식이 반영되도록 변경 테이블의 열을 변경했음을 나타냅니다. |
ddl_command |
nvarchar(max) |
원본 테이블에 적용된 DDL 문입니다. |
ddl_lsn |
binary(10) |
DDL 변경과 관련된 LSN(로그 시퀀스 번호)입니다. |
ddl_time |
datetime |
DDL 변경과 관련된 시간입니다. |
주의
열을 추가 또는 삭제하거나 기존 열의 데이터 형식을 변경하는 등 원본 테이블 열 구조의 변경을 유발하는 원본 테이블에 대한 DDL 수정 내용은 cdc.ddl_history 테이블에 유지됩니다. 이러한 변경 내용은 이 저장 프로시저를 사용하여 보고할 수 있습니다. cdc.ddl_history의 항목은 캡처 프로세스에서 로그의 DDL 트랜잭션을 읽을 때 생성됩니다.
사용 권한
데이터베이스의 모든 캡처 인스턴스에 대한 행을 반환하려면 db_owner 고정 데이터베이스 역할의 멤버 자격이 필요합니다. 다른 모든 사용자의 경우 원본 테이블에서 캡처된 모든 열에 대한 SELECT 권한이 필요하며 캡처 인스턴스에 대한 제어 역할이 정의된 경우 해당 데이터베이스 역할의 멤버 자격이 필요합니다.
예
다음은 원본 테이블 HumanResources.Employee에 열을 추가하고 sys.sp_cdc_get_ddl_history 저장 프로시저를 실행하여 캡처 인스턴스 HumanResources_Employee와 연관된 원본 테이블에 적용되는 DDL 변경 내용을 보고하는 예입니다.
USE AdventureWorks;
GO
ALTER TABLE HumanResources.Employee
ADD Test_Column int NULL;
GO
-- Pause 10 seconds to allow the event to be logged.
WAITFOR DELAY '00:00:10';
GO
EXECUTE sys.sp_cdc_get_ddl_history
@capture_instance = 'HumanResources_Employee';
GO