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
답변
아래 쿼리를 실행하여 데이터와 함께 기존 테이블의 기존 구조로 새 테이블을 만드는 기존 테이블의 백업을 수행 할 수 있습니다.
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