SQL Server의 기존 테이블에 기본값이있는 열 추가


질문

 

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.

메모:

선택적 제약 조건 이름 : 제약 조건 D_Sometable_somecol을 벗어나면 SQL Server가 자동 생성됩니다. 다음과 같은 재미있는 이름의 기본 - 탁월함 : df__someta__somec__4fb7fef6

선택 사항 With-values 문서 : 값과 함께 열이 무효화 할 때만 필요합니다. 기존 레코드에 사용되는 기본값을 원합니다. 열이 null이 아닌 경우 자동으로 기본값을 사용합니다. 모든 기존 레코드에 대해 값을 지정하든 아니든간에 지정하십시오.

기본 제약 조건으로 작동하는 방법 : 레코드를 Somentable에 삽입하고 SomeCol의 값을 지정하지 않으면 기본값이 0입니다. 레코드를 삽입하고 SOMECOL의 값을 null로 지정하면 (및 열의 열을 허용), 그런 다음 Default-Constraint가 사용되지 않고 null이 값으로 삽입됩니다.

메모는 아래의 모든 사람의 위대한 의견을 기반으로했습니다. 특별히 감사함: @yatrix, @walterstabosz, @yahoserious 및 @stackman 그들의 의견을위한 @stackman.



답변

ALTER TABLE Protocols
ADD ProtocolTypeID int NOT NULL DEFAULT(1)
GO

기본값을 포함시키는 것은 기존 행의 열을 기본값으로 채우므로 Null 제약 조건이 아닌 Noth가 위반되지 않습니다.



답변

Nullable 열을 추가 할 때 값을 사용하여 특정 기본값이 기존 행에 적용되는지 확인합니다.

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'


답변

두 줄의 가장 기본적인 버전

ALTER TABLE MyTable
ADD MyNewColumn INT NOT NULL DEFAULT 0
출처:https://stackoverflow.com/questions/92082/add-a-column-with-a-default-value-to-an-existing-table-in-sql-server