[sql-server] 테이블 수준 백업

MS SQL Server 2005/2008에서 테이블 수준 백업 (덤프)을 수행하는 방법은 무엇입니까?



답변

BACKUP DATABASE물론 문제의 테이블이 자체적으로 할당되지 않는 한이 명령을 사용하여 단일 테이블을 백업 할 수 없습니다 FILEGROUP.

제안한대로 할 수있는 작업은 테이블 데이터를 CSV 파일로 내보내는 것입니다. 이제 테이블의 정의를 얻기 위해 스크립트를 ‘ CREATE TABLE스크립트로 작성 ‘할 수 있습니다 .

SQL Server Management Studio 내에서 다음을 수행하여이 작업을 수행 할 수 있습니다.

데이터베이스> 작업> 스크립트 생성을 마우스 오른쪽 버튼으로 클릭

그런 다음 스크립팅 할 테이블을 선택하고 제약 조건 및 인덱스와 같은 관련 개체를 포함하도록 선택할 수도 있습니다.

를 얻기 위해 DATA단지와 함께 schema, 당신은 선택할 수있어 Advanced설정 스크립팅 옵션 탭에서, 그리고에서 GENERAL섹션 설정 Types of data to script선택을Schema and Data

도움이되기를 바라지 만 추가 지원이 필요한 경우 저에게 직접 연락 주시기 바랍니다.


답변

대량 복사 유틸리티 를 사용하여 테이블 수준 백업을 수행하고 있습니다.

내보내기 :

bcp.exe "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E

가져 오기 :

bcp.exe [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000

보시다시피 모든 쿼리를 기반으로 내보낼 수 있으므로이를 통해 증분 백업을 수행 할 수도 있습니다. 또한 SSMS를 사용하는 여기에 언급 된 다른 방법과 달리 스크립트가 가능합니다.


답변

필요한 단계는 다음과 같습니다. 데이터를 원한다면 Step5가 중요합니다. 2 단계에서는 개별 테이블을 선택할 수 있습니다.

EDIT 스택의 버전이 읽기 어렵습니다 … 여기에 전체 크기 이미지가 있습니다. http://i.imgur.com/y6ZCL.jpg

John Sansom의 답변 단계는 다음과 같습니다.


답변

아래 쿼리를 실행하여 데이터와 함께 기존 테이블의 기존 구조로 새 테이블을 만드는 기존 테이블의 백업을 수행 할 수 있습니다.

select * into newtablename from oldtablename

테이블 구조 만 복사하려면 아래 쿼리를 사용하십시오.

select * into newtablename from oldtablename where 1 = 2


답변

이것은 qntmfred의 솔루션 과 유사 하지만 직접 테이블 덤프를 사용합니다. 이 옵션은 약간 더 빠릅니다 ( BCP 문서 참조 ).

내보내기 :

bcp "[MyDatabase].dbo.Customer " out "Customer.bcp" -N -S localhost -T -E

가져 오기 :

bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000


답변

MySQL과 같은 것을 찾고 있다면 DUMP좋은 소식이 있습니다. SQL Server 2008 Management Studio가 그 기능을 추가했습니다.

SSMS에서 해당 DB를 마우스 오른쪽 버튼으로 클릭하고 작업> 스크립트 생성을 선택 합니다. 그런 다음 옵션 마법사의 두 번째 페이지에서 스크립팅 된 데이터도 선택해야DUMP 합니다. 그러면 파일 크기가 생성됩니다 .


답변

새 파일 그룹을 만들고이 테이블을 그 위에 놓고이 파일 그룹 만 백업합니다.