답변:
백업 유형은 SQL Server 복구 모델에 따라 다릅니다. 모든 복구 모델을 사용하면 전체 또는 부분 SQL Server 데이터베이스 또는 데이터베이스의 개별 파일 또는 파일 그룹을 백업 할 수 있습니다. 테이블 레벨 백업을 작성할 수 없습니다. 이러한 옵션은 없습니다. 그러나 이것에 대한 해결 방법이 있습니다
SQL Server에서 가능한 SQL Server 테이블 백업. SQL SQL Server에서 테이블을 백업하는 다양한 대체 방법이 있습니다
여기서 나는 당신이 알고있는 첫 번째 휴식만을 설명하고 있습니다.
방법 1 – BCP (BULK COPY PROGRAM)를 사용하여 SQL 테이블 백업
SQL Server AdventureWorks에있는 "Person.Contact"라는 SQL 테이블을 백업하려면 다음 스크립트를 실행해야합니다.
-- SQL Table Backup
-- Developed by DBATAG, www.DBATAG.com
DECLARE @table VARCHAR(128),
@file VARCHAR(255),
@cmd VARCHAR(512)
SET @table = 'AdventureWorks.Person.Contact' -- Table Name which you want to backup
SET @file = 'C:\MSSQL\Backup\' + @table + '_' + CONVERT(CHAR(8), GETDATE(), 112) -- Replace C:\MSSQL\Backup\ to destination dir where you want to place table data backup
+ '.dat'
SET @cmd = 'bcp ' + @table + ' out ' + @file + ' -n -T '
EXEC master..xp_cmdshell @cmd
산출
노트 -
또는 명령 프롬프트를 통해 BCP를 실행하고 명령 프롬프트에 다음 명령을 입력 할 수 있습니다. 두 작업 모두 동일한 활동을 수행하지만 명령 프롬프트 및 유형을 열 때 저장 유형 인 위에서 언급 한 방법이 마음에 듭니다.
bcp AdventureWorks.Person.Contact out C:\MSSQL\Backup\AdventureWorks.Person.Contact_20120222.dat -n -T
방법 1 :
테이블의 데이터에만 관심이 있고 동일한 데이터베이스 및 서버 내에서 로컬로 사용하려는 경우 아래 쿼리를 사용하여 선택한 테이블의 백업을 수행 할 수 있습니다.
SELECT * INTO newtable1
FROM originalTable1
--- 표 2
SELECT * INTO newtable2
FROM originalTable2
등등 ... n 개의 테이블 수
이 명령문은 newtable1, newtable1이라는 테이블을 작성합니다. 따라서 이전에 작성할 필요가 없습니다.
참고 *이 방법은 백업을 매우 빠르게 수행하지만 주요 단점은 테이블의 키, 인덱스 및 제약 조건을 수행하지 않으며 백업은 파일 외부가 아닌 데이터베이스 내에 저장된다는 것입니다
방법 2 :
재해 복구 솔루션 또는 데이터 손실 방지를 위해 다른 서버로 테이블을 백업하려는 경우 작업의 스크립트 생성 옵션을 사용하여 테이블을 스크립팅 할 수 있습니다.
먼저 백업하려는 테이블이 포함 된 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 작업-> 스크립트 생성을 선택하십시오.
테이블을 백업해야하는 목록에서 데이터베이스를 선택하십시오.
다음에 나타나는 화면은 스크립트 옵션입니다.
테이블 /보기 옵션이 표시 될 때까지 스크립트 옵션을 아래로 스크롤하십시오. 제약 조건, 스크립트 데이터, 외래 키, 기본 키, 트리거 및 고유 키를 확인하십시오. (또는 물론 필요한 것을 선택할 수 있습니다). 다음을 선택하면 객체 유형 선택 화면이 나타납니다.
테이블을 선택하고 다음을 누르십시오. 마지막으로 백업하려는 테이블을 선택하고 다음에 누르십시오.
방법 3 :
테이블 백업에도 bcp 유틸리티 를 사용할 수 있습니다 .
특정 테이블을 .bak
파일로 백업 할 수 없으며 csv로 내보내거나 스크립트로 내보내거나 bcp
파일에 넣는 데 사용할 수 있습니다.
특정 테이블을 백업하려는 경우 (그리고 항상 같은 경우) 수행 할 수있는 작업은 테이블을 별도의 file group
파일 그룹 으로 이동 하고 백업하는 것입니다.
설명서는 파일 및 파일 그룹 백업을 참조하십시오 .
예를 들어 T-SQL을 사용하여 특정 파일 또는 파일 그룹을 백업하려는 경우 (링크에서)
--Back up the files in SalesGroup1.
BACKUP DATABASE Sales
FILEGROUP = 'SalesGroup1',
FILEGROUP = 'SalesGroup2'
TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck';
GO
과
--Backup the files in the SalesGroup1 secondary filegroup.
BACKUP DATABASE Sales
FILE = 'SGrp1Fi2',
FILE = 'SGrp2Fi2'
TO DISK = 'G:\SQL Server Backups\Sales\SalesGroup1.bck';
GO
KASQLDBA의 응답에서 방법 1을 기반으로 :
백업 된 테이블 사본을 보유 할 별도의 데이터베이스를 작성하십시오. 원래 테이블에서 선택하고 대체 데이터베이스에 복사 할 수 있도록 KASQLDBA 제공 쿼리를 수정하십시오.
SELECT * INTO MyNewDatabase.dbo.newtable1
FROM OriginalDatabase.dbo.originalTable1
--- For table 2
SELECT * INTO MyNewDatabase.dbo.newtable2
FROM OriginalDatabase.dbo.originalTable2
새 데이터베이스에서 테이블을 삭제하는 스크립트를 작성한 다음 모든 필수 테이블에 대해 select into 명령을 실행할 수 있습니다. 인덱스 및 기타 개체를 사용할 수있게하려면 새 데이터베이스에서 해당 인덱스를 만들고 테이블을 다시 채우기 전에 잘라낼 수 있습니다. 잘림을 선호하는 경우 select into 대신 insert 문을 사용해야합니다.
이 옵션은 .BAK 파일을 만드는 방법을 제공합니다. 새 데이터베이스에서 테이블을 채운 후에는 단순히 데이터베이스 백업 명령을 실행하면됩니다.
SSMS의 대량 내보내기 기능을 사용하면 여기 에 언급 된 가장 쉽고 쉬운 방법이 있습니다
SQL Server 가져 오기 및 내보내기 마법사 : SQL Server 가져 오기 및 내보내기 마법사는 SQL Server Integration Services (SSIS) 패키지에 그래픽 사용자 인터페이스를 제공합니다. 패키지를 만든 후에는 일정대로 실행되도록 자동화 할 수 있습니다. SSDT (SQL Server Data Tools)를 사용하여 추가로 구성 및 수정할 수 있습니다.
시작하려면 가져 오기 및 내보내기 마법사를 열고 데이터베이스를 마우스 오른쪽 단추로 클릭 한 후 태스크 하위 메뉴-> 데이터 내보내기 명령을 선택하십시오.
또 다른 방법은 script / sproc을 사용하는 것입니다 : DumpDataFromTable.sql from : https://github.com/Zindur/MSSQL-DumpTable/tree/master/Scripts
EXECUTE [dbo].[DumpDataFromTable] @SchemaName = 'dbo', @TableName = 'Table', @PathOut = 'c:\temp\Scripts'
스키마 이름과 테이블 이름을 전달한 다음 작성된 스크립트가 저장 될 출력 경로를 전달해야합니다 (폴더는 이미 작성 / 존재해야하며 sql에는 sproc의 주석 참조 권한이 있음).
그리고 원하는 경우 테이블에 조건을 추가 할 수 있습니다 (필터는 AND로 시작해야합니다)