SQL Server 2005에서 테이블에 행을 삽입 한 날짜 + 시간을 찾을 수 있습니까?테이블에 행을 삽입 한 날짜
SQL Server 로그 삽입 명령이 있습니까? 나는 테이블을 만들 때마다
SQL Server 2005에서 테이블에 행을 삽입 한 날짜 + 시간을 찾을 수 있습니까?테이블에 행을 삽입 한 날짜
SQL Server 로그 삽입 명령이 있습니까? 나는 테이블을 만들 때마다
, 나는 항상 곁에 다음과 같은 두 개의 열을 포함한다 :이 여분의 공간의 비트를 사용하지만
CreatedBy varchar(255) default system_name,
CreatedAt datetime default getdate()
를, I는 정보가 시간이 지남에 매우 유용 증명하는 것으로 나타났습니다.
귀하의 질문은 로그에 관한 것입니다. 대답은 "예"입니다. 그러나 정보를 얻을 수 있는지 여부는 복구 모드에 따라 다릅니다. 단순한 경우 레코드는 다음 트랜잭션을 위해 겹쳐 쓰여집니다. 벌크 또는 가득 차 있다면, 정보는 최소한 마지막 증분 백업 이후의 로그에 있습니다.
로그를 읽음으로써 행이 삽입 된시기를 찾는 방법을 설명 할 수 있습니까? –
@AaronBertrand +1 –
테이블에 가장 쉽게 접근 할 수있는 InsertDate 기본 getdate() 열을 가질 수 있습니다. SQL Server 2008에서
당신은
변경 데이터 캡처 레코드를 삽입 테이블 업데이트에 변경된 데이터를 제어하고 는 SQL Server 테이블에 적용되는 활동을 삭제 CDC를 사용할 수 있습니다. 이로 인해 쉽게 변경된 관계형 형식으로 변경 사항의 세부 사항을 사용할 수 있습니다. 열 정보 및 대상 환경에 변경 내용을 적용하는 데 필요한 메타 데이터는 수정 된 행에 대해 캡처되고 테이블의 추적 된 원본 테이블의 열 구조를 미러링하는 변경 테이블에 저장됩니다. 테이블 값 함수는 소비자가 변경 한 데이터에 체계적으로 액세스 할 수 있도록 제공됩니다.
그래, 찾았 어.그러나 Sql Server 2005에서는 CDC를 사용할 수 없습니까? –
아니오, 방금 언급 했으므로 방금 언급했습니다. 나는 "SQl Server 2008에서"라고 말했습니다. :) – Diego
대단히 감사합니다. –
cdc 생성 함수를 사용하여 실제 데이터 레코드를 가져 오는 한 삽입 날짜를 도출 할 수 있습니다. 당신은 날짜에 로그 시퀀스 번호를 변환하는 기능 sys.fn_cdc_map_lsn_to_time
내장 CDC를 사용할 수 있습니다
DECLARE @from_lsn binary(10), @to_lsn binary(10);
SET @from_lsn=sys.fn_cdc_get_min_lsn ('name_of_your_cdc_instance_on_cdc_table');
SET @to_lsn=sys.fn_cdc_get_max_lsn();
SELECT * FROM
cdc.fn_cdc_get_net_changes_name_of_your_cdc_instance_on_cdc_table
(
@from_lsn,
@to_lsn,
N'all'
);
:
그래서 예를 들어, 당신은 뭔가를 끌어합니다. 아래 사용법 :
SELECT sys.fn_cdc_map_lsn_to_time(__$start_lsn),* FROM
cdc.fn_cdc_get_net_changes_name_of_your_cdc_instance_on_cdc_table
(
@from_lsn,
@to_lsn,
N'all'
);
왜 당신의 테이블에 자신의 'DateTime' 열이 기록되어 있지 않습니까? –
아니요.이 날짜 + 시간을 추적하는 테이블에 'DateTime' 열이 없으면이 방법을 찾을 수 없습니다. –
다른 답변을 참조하십시오. http://stackoverflow.com/questions/10720486/date-timestamp-to-record-when-a-record-was-added-to-the-table http://stackoverflow.com/ 질문/7349288/last-updated-column-in-a-sql-server-2008-r2-table을 추가하는 방법 - 기본적으로 행을 삽입 할 때 신뢰할 수있는 방법을 원할 경우 기본값 인 CURRENT_TIMESTAMP로 새 datetime 열을 추가하십시오. –