2014-02-11 2 views
0

기존 테이블에 기본값을 추가하려고하는데 전혀 작동하지 않습니다. 내 테이블에 데이터를 추가 할 때 'NO'이 표시 될 것으로 예상되지만 실제로 발생하지는 않습니다. 나는 무슨 일이 일어나고 있는지, 또는 나의 구문이 잘못되어 있는지 잘 모르겠습니다. 도와주세요. 감사합니다SQL 서버의 기존 테이블에 기본값을 추가하는 방법

ALTER TABLE [myTable] 
ADD CONSTRAINT [DF_myTable_FLAG] DEFAULT ('NO') FOR [FLAG] 

이 열의 데이터 형식은 varchar입니다.

+4

행을 삽입하는 데 사용하는 삽입 문을 표시 할 수 있습니까? – meziantou

+1

우선, 이것은 ** 새 행 **이 추가되는 경우에만 적용되며 ** INSERT 문에서 해당 열의 값을 명시 적으로 ** 지정하지 않은 경우에만 작동합니다. 구문은 괜찮아 보이지만 ** 어떻게 ** 새 행을 삽입합니까? –

답변

3

새 레코드 만 기본값으로 설정됩니다.

시험이 :

CREATE TABLE #TEST(NAME VARCHAR(5), FLAG VARCHAR(3)) 
INSERT INTO #TEST (NAME) SELECT 'DAVE' 
ALTER TABLE #TEST ADD CONSTRAINT [DF_TEST_FLAG] DEFAULT ('NO') FOR [FLAG] 
INSERT INTO #TEST (NAME) SELECT 'MOE' 

SELECT * FROM #TEST 

오래된 레코드를 수동으로 업데이트해야합니다.

관련 문제