2010-04-05 4 views
0

다른 데이터베이스로 이동하려는 레코드가 여러 개 있습니다. 복사하여 붙여 넣을 수있는 여러 개의 삽입을 만들고 싶습니다. 나는 누군가 이것을 전에 보았지만 그것을 이해할 수는 없다. 나는 이스케이프가 제대로되지 않을거야.SELECT를 사용하여 많은 수의 INSERT INTO를 인쇄하십시오.

'Code', 'Description'및 'Absent'가 내가 원하는 테이블 열입니다.

INSERT INTO AttendanceCodes 
    (Code, Description, Absent) 
VALUES 
    ('A','Unverified Absence','UA') 
+0

최종 솔루션 모두 정리 : 'INSERT INTO AttendanceCodes (코드, 설명, 부재) VALUE (' ''+ 코드 + '', '' '+ 설명 +' ',' ''+ 부재 + '' ')' 출석 코드 – Mikecancook

+0

왜 한 번에 하나씩 레코드를 복사합니까? 아주 가난한 연습. – HLGEM

+0

나는 db 작성 과정의 일부로 정적 테이블을 채우는 스크립트를 작성하고 있다고 생각합니다. 완벽하게 좋은 습관입니다. – egrunin

답변

2

는 확인이

SELECT 'INSERT INTO AttendanceCodes (Code, Description, Absent) VALUES (''' + Code + ''',''' + Description + ''',''' + Absent''')' 
    FROM AttendanceCodes 
+0

유니 코드 텍스트 (*가있는 ​​경우 *)가 새 데이터베이스에서 올바르게 복사되도록하기 위해 각 값 앞에 'N'을 추가합니다 ... –

+0

Perfect. 내 유일한 질문은, 당신은 어떻게 그렇게 빨리 반응 했습니까? 게 쉬! – Mikecancook

2

이런 식으로 뭔가를 시도 :

SELECT 
    'INSERT INTO AttendanceCodes (Code, Description, Absent) VALUES (' 
     + ISNULL(''''+CONVERT(varchar(8000),Code)+'''','null') 
     + ',' 
     + ISNULL(''''+CONVERT(varchar(8000),Description)+'''','null') 
     + ',' 
     + ISNULL(''''+CONVERT(varchar(8000),Absent)+'''','null') 
     +')' 
    FROM AttendanceCodes 

SELECT 'INSERT INTO AttendanceCodes 
      (Code, Description, Absent) 
     VALUES 
      (' + Code + ',' + Description + ',' + Absent')' 
    FROM AttendanceCodes 

최종 결과는 다음과 같이 올바른 값 인서트의 슬루해야한다

이것은 NULL을 처리합니다. 난 당신의 열 데이터 형식을 잘 모르겠지만, 당신은 오직 문자열을 연결할 수 있으므로 모든 varchar (8000)로 강제, 당신은 필요에 따라 수정할 수 있습니다.

+0

이것은 확실히 철저한 해결책이지만 그것이 필요한 것 이상입니다. 감사! – Mikecancook

+0

NULLS 및 데이터 형식을 고려하지 않고 문자열을 연결하는 경우는 거의 없으며 습관에 빠지며 디버깅 할 값을 포함해야하는 데이터 형식 변환 오류와 null 문자열이 적어집니다. –

0

테이블 이름 (및 다른 옵션)을 사용하고 해당 테이블의 현재 데이터에 대한 insert 문을 생성하는 일반 저장 프로 시저의 경우 link을 확인하십시오.

sp_generate_inserts라는 프로 시저를 만듭니다. 이 프로 시저에 테이블 이름을 전달하면 모든 삽입 문이 생성되어 데이터를 다시 작성합니다.

관련 문제