mssql insert문 질문 0 10 1,625

by 그냥토끼 [SQL Query] [2023.02.08 13:54:48]


A,B라는 테이블이 있으면 A의 num이라는 컬럼만 데이터를 변경하고 나머지 데이터는 그대로 A,B테이블에 값을 복사하고 싶은데 어떻게 해야할까요?

num code status
22010 123 1
22010 123 1

↑이런 테이블이 있다고 하면

 

num code status
23010 123 1
23010 123 1

이렇게 num번호만 새롭게 생성해서 나머지 데이터는 그대로 넣고 싶습니다

 

B테이블은 적지 않았지만 A,B테이블 num컬럼은 기본키로서 같은 값입니다. 이렇다고 하면 조건절 또는 조인을 사용해야 하나요?

by 마농 [2023.02.08 15:11:26]
-- INSERT INTO tab_a (num, code, status)
SELECT 23010 num
     , code
     , status
  FROM tab_a
 WHERE num = 22010
;

 


by 크로스세이버 [2023.02.08 15:53:41]

죄송합니다 질문을 바꿔도 될까요?
 

A라는 테이블에서 num이랑 code의 데이터만 변경해서 이 변경한 값을 다시 A테이블에 옮길 수 있을까요?

(나머지 데이터는 그대로 이전)

 

insert into

values를 사용하면 될거 같은 느낌이 드는데 맞을까요..?

 

두서 없는 질문 죄송합니다


by 마농 [2023.02.08 16:07:42]

원하시는 구문에 대한 답변 드린 것인데요.
혹시 원하는 결과가 아닌가요?
"A 의 데이터를 이용해 약간 가공하여 다시 A 에 추가 입력" 아닌가요?


by 크로스세이버 [2023.02.08 16:19:37]

아 네 말씀하신게 맞습니다


by 마농 [2023.02.08 16:21:50]

그럼 제 답글이 맞습니다.
우선 첫줄만 주석처리하여 SELECT 결과부터 확인하시고.
결과가 맞으면 주석 해제하여 INSERT 수행하시면 됩니다.


by 크로스세이버 [2023.02.08 17:21:23]

NULL 값을 삽입할 수 없습니다. 열에는 NULL을 사용할 수 없습니다. INSERT이(가) 실패했습니다.
문이 종료되었습니다.

 

라는 에러가 뜨면 컬럼명을 하나 하나 다 적어주고 값을 빈값이나 그런걸로 지정해줘야 하나요?


by 크로스세이버 [2023.02.08 18:03:50]

네 select는 맞게 나오는거 같은데 insert는 안되네요..


by 마농 [2023.02.08 17:28:44]

그대로 복사하기를 원한다면? 모든 항목을 다 적어줘야죠.
SELECT 만 수행했을 때 그 결과가 원하는 결과인지 확인하세요.


by 마농 [2023.02.08 18:13:20]

Insert 가 안된다면? 왜 안되는지 에러메시지를 보고 그에 맞는 조치를 하시면 됩니다.
NULL 입력이 안된다고 하면? 해당 항목의 값이 널이 나오지 않도록 쿼리를 수정해 주시면 됩니다.


by 크로스세이버 [2023.02.08 18:46:31]

넵 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입