이 작업을 수행하는 가장 쉬운 방법은이 "기반 덩어리"를 수행하는 것이 더 많은 양의 데이터를 복사하기 위해 완전한 이름
INSERT INTO ArchiveDatabase..TableName
SELECT *
FROM ProductionDatabase..TableName
WHERE EntryDate <= dateadd(mm, -6, current_timestamp)
를 사용하는 쿼리입니다. 순수 TSQL에서이 작업을 수행하는 가장 쉬운 방법은 다음과 같이이다 :
DECLARE @rowcount int
SET @rowcount = 1
WHILE @rowcount <> 0
BEGIN
INSERT INTO ArchiveDatabase..TableName
SELECT TOP (100000) *
FROM ProductionDatabase..TableName
WHERE EntryDate <= dateadd(mm, -6, current_timestamp)
SET @rowcount = @@ROWCOUNT
END
는 기본적으로
SELECT TOP()
절 100,000 행에 쿼리를 제한하고 더 이상 기록이 복사되지 않을 때까지 반복 유지한다. (
@@ROWCOUNT
은 영향을받는 레코드 수를 반환합니다.)
데이터베이스가 다른 SQL Server에있는 경우 "링크 된 서버"를 설정하고 서버 참조를 개체 이름에 추가 할 수 있습니다. 정규화 된 객체 이름의 형식은 <Server>.<Database>.<Owner>.<Object>
다른 서버 또는 동일한 서버에 있습니까? 또한 소스에서 데이터를 삭제 하시겠습니까? – Anon246