현재 날짜를 열의 기본값으로 사용


79

DateTime.NowSQL Server에서 열의 기본값을 설정하는 방법이 있습니까?

예:

table Event
Id int (auto-increment) not null
Description nvarchar(50) not null
Date datetime not null

라인 :

Insert into Event(Description) values('teste');

행을 삽입해야하며 날짜 값은 현재 날짜 여야합니다.


1
이 링크도 유용 할 수 있습니다 -blog.sqlauthority.com/2013/05/10/…
Steam

답변:


108

GETDATE () 함수를 값으로 사용하여 기본 제약 조건을 추가합니다.

ALTER TABLE myTable 
  ADD CONSTRAINT CONSTRAINT_NAME
    DEFAULT GETDATE() FOR myColumn

9
PostgreSQL에서는 다음과 같습니다. "alter table myTable add column mydatecol date default now ();" .. 질문 제목에 Sql-Server가 언급되지 않았기 때문에이 설명 만 추가했습니다. PostgreSQL 사용자에게 도움이 될 수 있습니다 ...
alfonx 2011-07-09

1
컬럼이 이미 테이블에 존재하고 INSERT 문 (또는 CURSOR 삽입)에서 값이 생략 된 경우 기본값을 설정하는 제약이없는 경우이 형식이됩니다.
TT.

이것이 쓰여진 방식은 CONSTRAINT키워드 가 누락 된 것 같습니다 . 그것은해야한다 ... ADD CONSTRAINT MY_CONSTRAINT_NAME ...
파우스트

1
않는다 GETDATE()우리에게 UTC 시간을주고?
Zapnologica

20
CREATE TABLE Orders(
    O_Id int NOT NULL,
    OrderNo int NOT NULL,
    P_Id int,
    OrderDate date DEFAULT GETDATE() // you can set default constraints while creating the table
)

3
이 형식은 명명되지 않은 제약 조건을 설정합니다. 제약 조건의 이름을 지정하는 것이 가장 좋습니다.[...]OrderDate DATE CONSTRAINT DF_Orders_date DEFAULT GETDATE()[...]
TT.

5

당신이 사용할 수있는:

Insert into Event(Description,Date) values('teste', GETDATE());

또한 'Date'가 기본값 인 "GETDATE ()"를 갖도록 테이블을 변경할 수 있습니다.


3

현재 날짜의 기본값을 가져올 테이블 열 이름을 선택하십시오.

 ALTER TABLE 
 [dbo].[Table_Name]
 ADD  CONSTRAINT [Constraint_Name] 
 DEFAULT (getdate()) FOR [Column_Name]

테이블 쿼리 변경

Alter TABLE [dbo].[Table_Name](
    [PDate] [datetime] Default GetDate())

3

나는 또한 내 데이터베이스 프로젝트에 대한 이러한 필요성을 발견했습니다. 나는 여기에서 나의 발견을 공유하기로 결정했다.

1) 데이터가 이미 존재하는 경우 기본값이없는 NOT NULL 필드에는 방법이 없습니다 ( DEFAULT 값없이 null이 아닌 열을 추가 할 수 있습니까? )

2)이 주제는 오랫동안 다루어졌습니다. 다음은 2008 년 질문입니다 ( SQL Server의 기존 테이블에 기본값이있는 열 추가 )

3) DEFAULT 제약 조건은 열에 대한 기본값을 제공하는 데 사용됩니다. 다른 값을 지정하지 않으면 모든 새 레코드에 기본값이 추가됩니다. ( https://www.w3schools.com/sql/sql_default.asp )

4) 개발에 사용하는 Visual Studio 데이터베이스 프로젝트는 변경 스크립트를 생성하는 데 정말 좋습니다. 이것은 내 DB 프로모션을 위해 생성 된 변경 스크립트입니다.

GO
PRINT N'Altering [dbo].[PROD_WHSE_ACTUAL]...';

GO
ALTER TABLE [dbo].[PROD_WHSE_ACTUAL]
    ADD [DATE] DATE DEFAULT getdate() NOT NULL;

-

개발을 위해 Visual Studio를 사용하여 데이터베이스를 업데이트하기 위해 수행 한 단계는 다음과 같습니다.

1) 기본값 추가 (Visual Studio SSDT : DB 프로젝트 : 테이블 디자이너) 여기에 이미지 설명 입력

2) 스키마 비교 도구를 사용하여 변경 스크립트를 생성하십시오.

code already provided above

3) 변경 사항을 적용하기 전에 데이터를 봅니다. 여기에 이미지 설명 입력

4) 변경 사항을 적용한 후 데이터를 봅니다. 여기에 이미지 설명 입력


1

현재 날짜 를 날짜 열의 기본값 으로 사용하려면 다음을 수행해야합니다.

1- 오픈 테이블 디자이너

2- 열 선택

3- 열 속성으로 이동

4- 기본값 또는 바인딩 고유 설정 ( getdate () )

여기에 이미지 설명 입력


0

테이블 생성 구문은 다음과 같을 수 있습니다.

Create table api_key(api_key_id INT NOT NULL IDENTITY(1,1) 
PRIMARY KEY, date_added date DEFAULT 
GetDate());

삽입 쿼리 구문은 다음과 같을 수 있습니다.

Insert into api_key values(GETDATE());

0

테이블을 마우스 오른쪽 버튼으로 클릭하고 디자인을 클릭 한 다음 기본값을 설정하려는 열을 클릭합니다.

그런 다음 페이지 하단의 열 속성에서 기본값 또는 바인딩을 'getdate ()'로 설정합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.