source

Nullable 열을 NOT NULL(기본값)로 변경합니다.

gigabyte 2023. 4. 14. 21:46
반응형

Nullable 열을 NOT NULL(기본값)로 변경합니다.

오늘 우연히 null을 허용하는 '생성'이라는 날짜/시간 열이 있는 오래된 테이블을 발견했습니다.이 값을 NOT NULL이 되도록 변경하고 기본값(getdate())에 추가하는 제약조건을 포함합니다.

지금까지 다음과 같은 스크립트를 입수했습니다.이 스크립트는 모든 null을 사전에 정리하면 정상적으로 동작합니다.

ALTER TABLE dbo.MyTable ALTER COLUMN Created DATETIME NOT NULL 

ALTER 문에도 기본값을 지정할 수 있는 방법이 있습니까?

세 가지 문장으로서 이 작업을 수행해야 할 것 같습니다.제가 둘러본 결과 컬럼을 추가할 때는 할 수 있지만 변경할 때는 할 수 없는 것 같습니다.

ALTER TABLE dbo.MyTable
ADD CONSTRAINT my_Con DEFAULT GETDATE() for created

UPDATE MyTable SET Created = GetDate() where Created IS NULL

ALTER TABLE dbo.MyTable 
ALTER COLUMN Created DATETIME NOT NULL 

먼저 늘이 아닌 모든 레코드를 기본값으로 업데이트한 후 alter table 문을 사용해야 할 수 있습니다.

Update dbo.TableName
Set
Created="01/01/2000"
where Created is NULL

다음 두 가지 쿼리를 실행해야 합니다.

하나 - 필요한 열에 기본값을 추가합니다.

ALTER TABLE 'Table_Name' 'Column_Name'에 기본값 '값' 추가

다음과 같이 Column IsDeleted에 기본값을 추가합니다.

예: ALTER TABLE [dbo][종업원] IsDeleted 기본값0 추가

2 - null이 아닌 null로 변경할 수 있는 열 값을 null이 아닌 값으로 변경합니다.

ALTER TABLE 'table_name' ALTER 열 'column_name' 'data_type'이 NULL이 아닙니다.

IsDeleted 열을 null이 아닌 것으로 만들고 싶다.

테이블 변경 [dbo][직원] 열 변경 IsDeleted BIT가 NULL이 아닙니다.

SQL Server의 경우 설계 뷰 내의 열 속성에서 수행할 수 있습니다.

시험해 보실래요?:

ALTER TABLE dbo.TableName 
  ADD CONSTRAINT DF_TableName_ColumnName
    DEFAULT '01/01/2000' FOR ColumnName

이거 드셔보세요

ALTER TABLE_name ALTER COLUMN col_name data_type이 NULL이 아닙니다.

언급URL : https://stackoverflow.com/questions/3186760/change-a-nullable-column-to-not-null-with-default-value

반응형