SQL Server 2000 / SQL Server 2005 의 기존 테이블에 기본값을 가진 열을 추가하려면 어떻게 해야합니까?
답변
통사론:
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
WITH VALUES
예:
ALTER TABLE SomeTable
ADD SomeCol Bit NULL --Or NOT NULL.
CONSTRAINT D_SomeTable_SomeCol --When Omitted a Default-Constraint Name is autogenerated.
DEFAULT (0)--Optional Default-Constraint.
WITH VALUES --Add if Column is Nullable and you want the Default Value for Existing Records.
노트:
선택적 제약 조건 이름 :
생략 CONSTRAINT D_SomeTable_SomeCol
하면 SQL Server는 다음
과 같은 재미있는 이름으로 기본 제약 조건 을 자동 생성 합니다.DF__SomeTa__SomeC__4FB7FEF6
옵션으로-값 문 :
는 WITH VALUES
만 열이 널 때 필요
하고 가치가 레코드를 기존에 사용되는 기본을합니다.
열이 NOT NULL
인 경우
, 지정 여부에 관계없이 모든 기존 레코드 의 기본값을 자동으로 사용합니다 WITH VALUES
.
삽입이 기본 제약 조건으로 작동하는 방법 :
레코드를 레코드에 삽입하고 값을 지정 SomeTable
하지 않으면SomeCol
기본값이로 설정됩니다 0
.
레코드 를 지정 하고SomeCol
의 값을 다음과 같이 지정 하면 NULL
(열에 널이 허용됨)
기본 제한 조건이 사용 되지 않고NULL
값으로 삽입됩니다.
메모는 아래의 모든 사람의 훌륭한 피드백을 바탕으로 작성되었습니다.
의견을 주신 @Yatrix, @WalterStabosz, @YahooSerious 및 @StackMan에게
감사드립니다
.
답변
ALTER TABLE Protocols
ADD ProtocolTypeID int NOT NULL DEFAULT(1)
GO
DEFAULT를 포함하면 기존 행 의 열 이 기본값으로 채워 지므로 NOT NULL 제한 조건이 위반되지 않습니다.
답변
추가하면 널 열 , WITH VALUES
특정 디폴트 값이 존재하는 행에 적용되도록한다 :
ALTER TABLE table
ADD column BIT -- Demonstration with NULL-able column added
CONSTRAINT Constraint_name DEFAULT 0 WITH VALUES
답변
ALTER TABLE <table name>
ADD <new column name> <data type> NOT NULL
GO
ALTER TABLE <table name>
ADD CONSTRAINT <constraint name> DEFAULT <default value> FOR <new column name>
GO
답변
ALTER TABLE MYTABLE ADD MYNEWCOLUMN VARCHAR(200) DEFAULT 'SNUGGLES'
답변
추가하는 열에 NOT NULL
제약 조건이 있지만 DEFAULT
제약 조건 (값) 이없는 경우주의하십시오 . 이 ALTER TABLE
경우 테이블에 행이 있으면 명령문이 실패합니다. 해결책은 NOT NULL
새 열에서 제약 조건을 제거하거나 제약 조건을 제공하는 DEFAULT
것입니다.
답변
두 줄만있는 가장 기본적인 버전
ALTER TABLE MyTable
ADD MyNewColumn INT NOT NULL DEFAULT 0
![](http://daplus.net/wp-content/uploads/2023/04/coupang_part-e1630022808943-2.png)