2009-04-07 5 views
3

하나의 테이블에서 다른 테이블로 값을 삽입하려고합니다. 추가 매개 변수가 필요합니다. 예를 들어 :SQL 테이블에 값을 삽입하고 SELECT 문을 사용하십시오.

INSERT INTO table1(someInt, someOtherInt, name, someBit)  
SELECT someInt, someOtherInt, name FROM table2 

someBit는 null이 허용되지 않으며, 나는 false로 설정해야합니다,하지만 난 같은 INSERT 문에서 사용하는 방법을 아주 확실하지 않다.

편집 (가 중요한 경우 임 SQL 2005를 사용) : 내가 어쩌면

답변

14

INSERT INTO table1(someInt, someOtherInt, name, someBit)  
SELECT someInt, someOtherInt, name, 0 
FROM table2 
+0

hehehe :) 사실 너무 단순합니다. 맞습니까? :) –

+0

예, 때때로 우리는 우리 자신을 붙였습니다. 우리 누구에게나 일어날 수 있습니다. –

+0

나는 이것들에 대한 대답을 얻기에는 너무 느립니다. 나는 대답이 없었을 때 이미 "Submit"을 눌렀을 때 이미 3이 있었다. :) –

4

아마도

INSERT INTO table1(someInt, someOtherInt, name, someBit)
SELECT someInt, someOtherInt, name, 0 FROM table2

:-) 사자에 필렛 미뇽을 던졌다처럼 아야는 ... 보인다

?

4
INSERT INTO table1(someInt, someOtherInt, name, someBit)  
SELECT someInt, someOtherInt, name, 0 FROM table2 
3

할 수 있습니다 단지 하드 코드 때문에 같은 SELECT의 값 :

INSERT INTO 
    dbo.table1 
(
    someInt, 
    someOtherInt, 
    name, 
    someBit 
) 
SELECT 
    someInt, 
    someOtherInt, 
    name, 
    0 
FROM 
    dbo.table2 
+0

왜 테이블에 기본값을 설정하지 않습니까? –

+0

0이 항상 기본값이 아닐 수도 있습니다. –

2

또한 대상 테이블에 해당 컬럼에 대한 기본 값을 정의 할 수 있습니다. 이렇게하면 삽입 문에서이 모든 것을 참조 할 필요가 없습니다.

SomeBit이 고객 테이블의 활성 플래그 또는 상태라고 가정 해 보겠습니다. 활성 0 = 해제/거짓/아니오 활성 1 = 켜기/참/예.

관련 문제