많은 비트 필드가 포함 된 매우 넓은 테이블이 있습니다. 이 비트 필드는 원래 Nullable로 설정되었습니다. 이제 우리는 nullable을 가질 수 없다는 결정을 내 렸습니다. 업데이트,SQL 2008에서 열의 null 허용 가능성 업데이트
create table MyTable(
ID bigint not null,
Name varchar(100) not null,
BitField1 bit null,
BitField2 bit null,
...
BitFieldN bit null
)
그래서 난 그냥 SQL Management Studio를 통해 갔어요
create table MyTable(
ID bigint not null,
Name varchar(100) not null,
BitField1 bit not null,
BitField2 bit not null,
...
BitFieldN bit not null
)
alter table MyTable add constraint DF_BitField1 default 0 for BitField1
alter table MyTable add constraint DF_BitField2 default 0 for BitField2
alter table MyTable add constraint DF_BitField3 default 0 for BitField3
에 : 값이 예 또는 다른 말로 없음, 기본 번호 중 하나이며, 스키마에서 변경해야 이 모든 필드는 null이 아닌 기본값 인 0으로 변경됩니다. 그리고 업데이트하려고하면 SQL Mgmt Studio가 내부적으로 테이블을 다시 만든 다음 모든 데이터를 새 테이블에 다시 삽입하려고 시도합니다. null 값을 포함하여! 명시 적으로 null 값을 null이 허용되지 않는 열에 삽입하려고 시도하기 때문에 물론 오류를 생성합니다. 아아! 분명히
나는 형태의 N 업데이트 문을 실행할 수 있습니다 :
update MyTable set BitField1 = 0 where BitField1 is null
update MyTable set BitField2 = 0 where BitField2 is null
을하지만 내가 전에 말했듯이, N 필드는 거기 밖으로, 그리고 무엇보다,이 변화는 여러 동일한에게 전파한다 데이터베이스. 수동으로 구현하는 것은 매우 고통 스럽습니다.
null 값을 무시하고 null 값을 삽입하려고 할 때 기본 규칙이 시작되도록 허용하는 방법이 있습니까?