2014-06-19 3 views
0

하나의 데이터베이스에서 다른 데이터베이스로 데이터를 이동하려고합니다. 원본 및 대상 데이터베이스 서버가 모두 연결되어 있지 않으므로 대상 테이블로 작업을 내보낼 수 없습니다. 지금까지 다음을 수행했습니다.SQL 파일에서 테이블로 데이터 가져 오기

1) TASKS/스키마 생성, 스크립트 생성, sql.

2) 대상 데이터베이스로 이동하여 SQL 파일을 열고 데이터베이스 스키마를 만들었습니다.

3) 원본 데이터베이스로 이동하여 작업 생성 /이 시간에만 데이터 생성 옵션을 선택하고 SQL과 함께 데이터를 생성했습니다.

4) 대상 데이터베이스로 이동하여 크기가 1.4 gb 인 크기의 SQL 데이터 전용 스크립트를 열어 보았습니다. 메모리 부족 유형의 오류 예외가 발생했습니다.

어떻게 데이터를 가져올 수 있습니까?

+0

대상 데이터베이스가 비어 있습니까? 원본 데이터베이스를 백업하고 그 위치에있는 새 데이터베이스 서버로 백업을 복원 할 수 있습니까? – Pricey

+0

이 기사를 살펴보고 백업/복원 방법을 변경하면 많은 번거 로움을 덜 수 있습니다. http://sqlbak.com/blog/copy-a-database-to-another-server/ –

+0

예 대상 데이터베이스에만 스키마 개체가 있지만 데이터가없는 경우 전체 백업을 수행 할 수 없습니다. 스크립트 데이터 만 생성하는 이유는 데이터를 필요로하는 몇 가지 테이블을 선택할 수 있기 때문입니다. –

답변

0

나는 똑같은 문제를 겪고 있었고 나의 해결책은 스크립트 파일에 매 100 줄마다 GO 문을 삽입하는 것이었다. Powershell 한 줄로 이렇게했습니다.

gc script.sql | % {$i=0}{$i++;$_ + $(if($i % 100 -eq 0){"`nGO"}else{''})} Set-Content mew_script.sql 
+0

실행해야합니까? 위의 명령 줄을 통해? 기존 스크립트를 수정합니까? 또는 위의 옵션을 사용하여 SQL 데이터 전용 파일을 다시 생성해야합니다. 또한 그 후 내가 대상 데이터베이스에 가서 SQL 파일을 열 수 –

+0

코드는 'script.sql'라는 스크립트 파일을 가정하고 'new_script.sql'라는 새 파일을 만듭니다. 코드에서이 이름을 원하는대로 변경할 수 있습니다. 실행하려면 Powershell 콘솔을 열고 cd를 입력하고 스크립트 파일의 경로 다음에 Enter 키를 입력하십시오. 그런 다음 내 대답의 코드를 입력/복사하고 Enter 키를 누릅니다. 그런 다음 100 줄마다 Go 문을 갖게된다는 것을 제외하고는 원래 스크립트 파일과 동일한 새 스크립트 파일을 만들어야합니다. –

관련 문제