[SQL] 단일 삽입 문에 삽입 할 수 SQL 서버 최대 행
SQL단일 삽입 문에 삽입 할 수 SQL 서버 최대 행
이 질문 유사한 일괄 삽입을 수행 할
MySQL의에서 일괄 삽입 작업을 수행하는 방법
INSERT INTO tbl_name (a,b)
VALUES (1, 2), (1, 3));
해결법
-
==============================
1.당신은 하나 개의 문장에 삽입 할 수있는 행의 최대 수는 1000 때 사용하는 INSERT INTO ... VALUES ... 즉,
당신은 하나 개의 문장에 삽입 할 수있는 행의 최대 수는 1000 때 사용하는 INSERT INTO ... VALUES ... 즉,
INSERT INTO TableName( Colum1) VALUES (1), (2), (3),...... upto 1000 rows.
당신이 테이블에 행을 삽입 할 SELECT 문을 사용하는 경우에, 그에 대한 제한과 같은이 없습니다 ...
INSERT INTO TableName (ColName) Select Col FROM AnotherTable
이제 두 번째 질문에오고. 오류가 삽입 중에 발생하면 어떻게됩니까.
당신은 다중 값 구조를 사용하여 행을 삽입하는 잘 경우
INSERT INTO TableName( Colum1) VALUES (1), (2), (3)
위의 시나리오에서 모든 행 삽입 오류가 전체 문이 롤백되고 행도 삽입되지 않습니다 발생하는 경우.
하지만 당신은 각 행 즉에 대한 별도의 문 행을 삽입 한 경우 ...
INSERT INTO TableName( Colum1) VALUES (1) INSERT INTO TableName( Colum1) VALUES (2) INSERT INTO TableName( Colum1) VALUES (3)
위의 경우 각 행의 삽입은 별도의 성명 및 행 삽입 오류가 발생하면 문 삽입 특정 성공적으로 삽입됩니다 나머지 롤백됩니다 만있다.
-
==============================
2.당신은 실제로 하위 쿼리를 사용하여 기록을 무제한으로 전달할 수 있습니다.
당신은 실제로 하위 쿼리를 사용하여 기록을 무제한으로 전달할 수 있습니다.
;WITH NewData AS (SELECT * FROM ( VALUES (1, 'A'),(2,'B'),(3,'C')) x (Id, SomeName)) INSERT INTO TableName (Column1, Column2) SELECT Id, SomeName FROM NewData
-
==============================
3.최대는 1000이지만,이 성능이 훨씬 작은 숫자에 감소하기 시작 것을 증명 됐어요. 유진 Philipov이 매우 주제를 탐구 좋은 기사를 쓴 :
최대는 1000이지만,이 성능이 훨씬 작은 숫자에 감소하기 시작 것을 증명 됐어요. 유진 Philipov이 매우 주제를 탐구 좋은 기사를 쓴 :
https://www.red-gate.com/simple-talk/sql/performance/comparing-multiple-rows-insert-vs-single-row-insert-with-three-data-load-methods/
요약하면, 저자는 매우 실험 잘 설계된 일부를했고, 약 25 YMMV에서 스위트 스폿 (sweet spot)을 발견했다.
-
==============================
4.당신이 시도 할 수 있습니다
당신이 시도 할 수 있습니다
with tempDataTable AS (SELECT *From (VALUES (18001,79626,'1992-12-11','1993-12-11') -- this is data u want to insert )x(empNO,sal,frmDate,toDate)) -- tempDataColoumns INSERT INTO salaries(emp_no,salary,from_date,to_date) SELECT empNO,sal,frmDate,toDate from newData
제거 '-'쿼리시
from https://stackoverflow.com/questions/37471803/sql-server-maximum-rows-that-can-be-inserted-in-a-single-insert-statment by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 스왑 기본 키 값 (0) | 2020.07.12 |
---|---|
[SQL] 삽입 날짜에 대한 기본 GETDATE (0) | 2020.07.12 |
[SQL] 어떻게 SQL의 IN 술어 작동합니까? (0) | 2020.07.12 |
[SQL] 봄 부팅 - 저장소 필드를 찾을 수 없습니다 '의 EntityManagerFactory'라는 이름의 빈을 요구 (0) | 2020.07.12 |
[SQL] NVARCHAR 선언에서 생략 크기의 효과는 무엇인가 (0) | 2020.07.12 |