table_one이라는 테이블이 있습니다. (7 밀) 행SQL Server - 특정 테이블에서 다른 테이블로 특정 행 집합 삽입
새 테이블 (table_two)에 0 - 1 밀을 삽입하고 동일한 테이블에 1 밀리미터 - 2 밀을 삽입하고 싶습니다.
SET ROWCOUNT 1000000
어떻게 달성 할 수 있습니까? 삽입 할 행의 범위를 지정하는 방법이 있습니까? 당신이 시작을 얻을 기존 테이블에 ID를 끝낼 수있는 경우
table_one이라는 테이블이 있습니다. (7 밀) 행SQL Server - 특정 테이블에서 다른 테이블로 특정 행 집합 삽입
새 테이블 (table_two)에 0 - 1 밀을 삽입하고 동일한 테이블에 1 밀리미터 - 2 밀을 삽입하고 싶습니다.
SET ROWCOUNT 1000000
어떻게 달성 할 수 있습니까? 삽입 할 행의 범위를 지정하는 방법이 있습니까? 당신이 시작을 얻을 기존 테이블에 ID를 끝낼 수있는 경우
당신은 row_number 사용할 수 있습니다
;with cte as (
select
*,
row_number() over(order by some_field) as rn
from table_one
)
insert into table_two (fields)
select fields from cte
where rn < 1000000
, 당신은 같은 것을 할 수 있습니다 : 당신은 이미 유용한 ID가없는 경우
INSERT INTO NewTable (...)
SELECT ... FROM OldTable
WHERE OldTableID BETWEEN @StartID AND @EndID
, danihp의 솔루션을 사용 ROW_NUMBER()을 사용하십시오.
당신이 식별자의 범위가없는 경우 ROW_NUMBER() 사용하여 생성 할 수 있습니다 : 당신이 정확한 점점 관심이 있다면
with toinsert (
select *, row_number() over (partition by NULL order by <whatever>) as rownum
from OldTable
)
insert into NewTable(...)
select ... from toinsert
당신은 어디 절을 잊어 버려! – danihp
을 행 수를 입력하면 TOP을 입력 할 수 있습니다.
insert into Table2
select top 1000000 *
from Table1
order by ... ID? or newid() if you want random rows.
더 나은 전체 테이블을 bulk import format, splitting 텍스트 파일로 내보내기, 다음 bulk importing 여러 테이블에 7 개 정도 조각.
물론 원래 테이블에 SQL INSERT 작업을 수행 할 수있는 키가있을 수 있지만 게시하려면 질문에 제공되지 않은 정보가 필요합니다.
페이징에 사용할 수있는 'ID'또는 'DateTime' 열 또는 기타 항목이 있습니까? –