SQL Server를 받고 2005는 SQL 테이블 스크립트에 null 이외의 열을 추가 - 오류
다음은 Is_Active 열이 이전에 Dim_Form 테이블에 존재했다면 오류없이 SQL 작업의 3 개 라인을 다음과 같습니다.
예 : Is_Active가 이전에 존재하지 않았 으면 다음 세 줄을 실행하면 아래와 같은 오류가 발생합니다.
ALTER TABLE dbo.Dim_form add Is_Active bit NULL
UPDATE dbo.Dim_form set Is_Active = 1
ALTER table dbo.Dim_form alter column Is_Active bit NOT NULL
이 오류를 얻을 경우에만 자사의 '새로운'열
Msg 207, Level 16, State 1, Line 2
Invalid column name 'Is_Active'.
나는이
ALTER TABLE dbo.Dim_form add Is_Active bit NULL
GO
UPDATE dbo.Dim_form set Is_Active = 1
ALTER TABLE dbo.Dim_form alter column Is_Active bit NOT NULL
-- and now drop the newly created column
ALTER TABLE dbo.Dim_form DROP COLUMN Is_Active
가 지금은 성공적으로 SQL의 원래 3 개 라인을 실행할 수있는 실행하는 경우 - 어떤 아이디어가 발생하고 있습니까?
열의 이전 존재가 스크립트에 영향을주는 이유는 무엇입니까?
첫 번째 '이 명 배치'가 .. 그 비트, 즉 후 성공적으로 열을 만드는 '세 번째 배치'에 대한 의미하지만, 무엇을 만들어 실행하면 다음 같은에서 원래의 3 개 라인을 실행, 삭제 확인 다시 .. 그것은 오류없이 작동합니다. –
"세 번째 배치"에서 Is_Active 열을 삭제하고 3 개의 원래 줄을 실행합니다. 일괄 처리를 수행 할 때 Is_Active 열은 부분적으로 존재하지만 더 이상 존재하지 않지만 파서는 일괄 처리를 구문 분석하는 시점에서 SQL Server의 상태 만 볼 수 있기 때문에이 열을 볼 수 없습니다. –
감사합니다. 그러나 Is_Active 열은 삭제 한 후에도 여전히 어디에 있습니까? 열을 삭제하고 연결을 닫은 다음 새 쿼리 창을 열어 원래 3 줄을 실행했으며 여전히 작동합니다. –