2014-07-18 3 views

답변

0
ALTER TABLE [table] ADD [CreationTimeStampUTC] DATETIME DEFAULT(GETUTCDATE()) 

를 추가하거나 내가 실제 코드에서 자세한 내용을 본 적이 생각 GETDATE()와 동일한 기능을 수행 할 수 있습니다. 물론 GETDATE()은 SQL Server의 현재 서버 시간으로 간주되며 웹 서버의 현재 시간, 특히 클라이언트 컴퓨터의 현재 시간과 일치하거나 일치하지 않을 수 있습니다. 분명히 그 문제는 없습니다. 단지 당신이 미리 의미를 확실히 알고 있는지 확인하십시오. 또한이 타임 스탬프를 DATETIMEOFFSET으로 저장하여 이러한 우려를 없앨 수는 있지만 서버의 기본값을 명시 적으로 말하고 있기 때문에 UTC로 충분하다고 생각합니다.

+0

참고로, SQL Server는 상수 이외의 기본값을 지원합니다. – DMason

+0

@DMason 오, 이봐, 너 말이 맞아. 더욱 좋다. 감사. 필자는 실제로 "상수 표현"에 대한 문서의 정의를 읽지 않았습니다. 그래서 나는 그들이 그 안에서 시스템 기능을 계산했는지 몰랐습니다. 매일 새로운 것을 배우십시오. 내 대답을 조정하겠습니다. 다시 한번 감사드립니다. –

+0

기본적으로 타임 스탬프는 행이 삽입되는 현재 시간을 의미합니다. 현재 시간 기록이 필요합니다. – Rahul

2

ALTER의 table_name 테이블은 InsertTime DATETIME시 기본 GETDATE()

+0

나는 이것을 시도했다. 하지만 IDENTITY_INSERT가 OFF로 설정되면 테이블 'Users_Master'의 ID 열에 명시 적 값을 삽입 할 수 없습니다. " – Rahul

+0

@Rahul odd .. 스키마 정의를 게시 할 수 있습니까? – Akash

+0

그리고 실행 한 정확한 문 – Akash

0

찾고있는 것은 기본 제한 사항입니다. 추가 방법은 열이 이미 있는지 여부에 따라 다릅니다. 그렇지 않은 경우, 당신은과 같이 한 번에 열 및 제약 조건을 추가 할 수 있습니다 열이 이미 존재

alter table dbo.yourTable 
    add [NewColumn] datetime 
    constraint [DF_NewColumn] default (getdate()); 

경우, 당신이 그렇게처럼에 기본을 첨부 할 수 있습니다

alter table dbo.yourTable 
    add constraint [DF_ExistingColumn] default (getdate()) for [ExistingColumn]; 

테이블 아직 존재하지 않는 경우 마지막으로, 당신은 테이블 정의에 제약 조건을 추가 할 수 있습니다

create table dbo.yourTable (
    NewColumn datetime not null constraint [DF_NewColumn] default (getdate()) 
) 

참고 : 모든 경우에, 나는 제약 조건 이름을 주었다. 당신은 선택할 수 있지만, 결국 제약 조건 이름이 dev와 prod 사이에서 일치하지 않기 때문에 그녀의 데이터베이스 비교가 엉망인 이유를 묻는 huffy DBA를 얻게됩니다. :)

관련 문제