나는 시도했다 :
ALTER TABLE MY_TABLE
ADD STAGE INT NOT NULL;
그러나 다음과 같은 오류 메시지가 표시됩니다.
ALTER TABLE은 널을 포함하거나 DEFAULT 정의가 지정된 열만 추가 할 수 있도록 허용합니다.
답변
옵션으로 처음에 Null 허용 열을 만든 다음 유효한 null이 아닌 값으로 테이블 열을 업데이트하고 마지막으로 ALTER 열을 업데이트하여 NOT NULL 제약 조건을 설정할 수 있습니다.
ALTER TABLE MY_TABLE ADD STAGE INT NULL
GO
UPDATE MY_TABLE SET <a valid not null values for your column>
GO
ALTER TABLE MY_TABLE ALTER COLUMN STAGE INT NOT NULL
GO
또 다른 옵션은 열에 올바른 기본값을 지정하는 것입니다.
ALTER TABLE MY_TABLE ADD STAGE INT NOT NULL DEFAULT '0'
UPD : 위의 답변에는 GO
Microsoft SQL 서버에서이 코드를 실행할 때 필수 항목이 포함되어 있습니다 . Oracle 또는 MySQL에서 동일한 작업을 수행하려면 다음과 같은 세미콜론을 사용해야 ;
합니다.
ALTER TABLE MY_TABLE ADD STAGE INT NULL;
UPDATE MY_TABLE SET <a valid not null values for your column>;
ALTER TABLE MY_TABLE ALTER COLUMN STAGE INT NOT NULL;
답변
열이 Null이되도록 허용하지 않는 경우 기존 행을 채우기위한 기본값을 제공해야합니다. 예 :
ALTER TABLE dbo.YourTbl ADD
newcol int NOT NULL CONSTRAINT DF_YourTbl_newcol DEFAULT 0
Enterprise Edition에서는 2012 년 이후 메타 데이터 만 변경 되었습니다.
답변
오류 메시지는 매우 설명 적입니다.
ALTER TABLE MyTable ADD Stage INT NOT NULL DEFAULT '-';
답변
다른 SQL 구현에도 유사한 제한이 있습니다. 그 이유는 열을 추가하려면 해당 열에 대한 값을 추가해야하므로 (물리적으로는 아니더라도 논리적으로) 기본값은 NULL
. 허용 NULL
하지 않고가없는 경우 default
값은 무엇입니까?
SQL Server가를 지원하므로 ADD CONSTRAINT
Pavel의 nullable 열을 만든 다음 비값으로 NOT NULL
채운 후 제약 조건 을 추가하는 것이 좋습니다 NULL
.
답변
이것은 나를 위해 일했고, 또한 디자인 뷰에서 “빌려”, 변경-> 마우스 오른쪽 버튼 클릭-> 변경 스크립트 생성.
BEGIN TRANSACTION
GO
ALTER TABLE dbo.YOURTABLE ADD
YOURCOLUMN bit NOT NULL CONSTRAINT DF_YOURTABLE_YOURCOLUMN DEFAULT 0
GO
COMMIT
답변
ALTER TABLE `MY_TABLE` ADD COLUMN `STAGE` INTEGER UNSIGNED NOT NULL AFTER `PREV_COLUMN`;
답변
Alter TABLE 'TARGET' add 'ShouldAddColumn' Integer Not Null default "0"