나는이 작업을 수행하기 위해 노력하고:
ALTER TABLE CompanyTransactions DROP COLUMN Created
그러나 내가 이것을 얻을:
Msg5074,16 레벨,상태 1,2 Object'DFCompanyTrCreat__0CDAE408'에 의존 열'성'. Msg4922,수 16,상태 9,행 2 ALTER TABLE 드롭 열 만들지 못했기 때문에 하나 이상의 객체에 액세스 열이 있습니다.
이 코드 첫 번째는 테이블. 게 마이그레이션가 모두 엉망를 수동으로 목록을 다시 일부 변경되었습니다.
나는없음생각이 무엇인:
DF__CompanyTr__Creat__0CDAE408
는@SqlZim's 응답이 올바른지만 단지 이유를 설명이 가능하게 일어났습니다. 나는've 유사한 문제가 있었고 이에 의해 발생했 매우 무고한 것은 추가하는 기본값을 열
ALTER TABLE MySchema.MyTable ADD
MyColumn int DEFAULT NULL;
그러나의 영역에서 MS SQL 서버에서 기본값은 콜럼은 제약이 있습니다. 모든 제한조건하고 있는 식별자입니다. 과할 수 없습니다 드롭 열에서 사용되는 경우에는 제한이었습니다.
그래서 당신이 실제로 할 수 있는 피해 이런 종류의 문제는 항상 당신의 기본 제약 조건이**명시적 이름**,예를 들어:
ALTER TABLE MySchema.MyTable ADD
MyColumn int NULL,
CONSTRAINT DF_MyTable_MyColumn DEFAULT NULL FOR MyColumn;
You'll 여전히 제약 조건을 삭제하기 전에 떨어지는 열을,하지만 당신은에서 이상을 알고 그 이름 앞.
으로 이미 작성에 필요한 답변을 드롭약(의해 자동으로 생성 sql)에 관련된 모든 열려고 하는 삭제합니다.
를 수행하는 다음 작업을 수행하는 단계에 필요한.
exec sp_helpconstraint'<이블 이름>'
당신이해야 할 몇 가지:
--1. 제거 제한조건 및 drop column 존재하는 경우(을 선택* 에서 INFORMATION_SCHEMA.열 는 TABLE_NAME=N'TABLE_NAME' 와 테=N'LOWER_LIMIT') 시 선@sql 이며(MAX) 는 동안 1=1 시 선택 최 1@sql=N'alter table[TABLE_NAME]드롭 제약 조건['+dc.이름+N']' Sys.default_constraints dc 가입 sys.열 c C.default_object_id=dc.object_id 어디에 dc 입니다.parent_object_id=OBJECT_ID('[TABLE_NAME]')c.이름=N'LOWER_LIMIT' 는 경우@@ROWCOUNT=0 시 인쇄'삭제약 조건에서 열 LOWER_LIMIT' 휴식 말 EXEC(@sql) END; ALTER TABLE TABLE_NAME 드롭 열 LOWER_LIMIT; 인쇄'삭제 열 LOWER_LIMIT' 말 다른 사람 인쇄'열 LOWER_LIMIT 존재하지 않는' 가
를 변경할 경우 열데이터 형식이
당신은 필요한 변경하는제약 조건 키
모든 데이터베이스에 대
alter table CompanyTransactions drop constraint [df__CompanyTr__Creat__0cdae408];