단일 SQL 쿼리에 여러 행을 삽입하시나요?

한 번에 삽입할 데이터 집합이 여러 개 있습니다(예: 4행). 내 테이블에는 세 개의 열이 있습니다: 사람,아이디,오피스`입니다.

INSERT INTO MyTable VALUES ("John", 123, "Lloyds Office");
INSERT INTO MyTable VALUES ("Jane", 124, "Lloyds Office");
INSERT INTO MyTable VALUES ("Billy", 125, "London Office");
INSERT INTO MyTable VALUES ("Miranda", 126, "Bristol Office");

하나의 SQL 문에 4개의 행을 모두 삽입할 수 있나요?

질문에 대한 의견 (14)

SQL Server 2008에서는 단일 SQL INSERT 문을 사용하여 여러 행을 삽입할 수 있습니다.

INSERT INTO MyTable ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )

이에 대한 자세한 내용은 MOC 과정 2778A - SQL Server 2008에서 SQL 쿼리 작성을 참조하십시오.

예를 들어

INSERT INTO MyTable
  ( Column1, Column2, Column3 )
VALUES
  ('John', 123, 'Lloyds Office'), 
  ('Jane', 124, 'Lloyds Office'), 
  ('Billy', 125, 'London Office'),
  ('Miranda', 126, 'Bristol Office');
해설 (13)

단일 테이블에 삽입하는 경우 다음과 같이 쿼리를 작성할 수 있습니다(MySQL에서만 가능):

INSERT INTO table1 (First, Last)
VALUES
    ('Fred', 'Smith'),
    ('John', 'Smith'),
    ('Michael', 'Smith'),
    ('Robert', 'Smith');
해설 (10)

참고: 이 답변은 SQL Server 2005용입니다. SQL Server 2008 이상의 경우 다른 답변에서 볼 수 있듯이 훨씬 더 나은 방법이 있습니다.

SELECT UNION ALL]1을 사용하여 삽입할 수 있습니다:

INSERT INTO MyTable  (FirstCol, SecondCol)
    SELECT  'First' ,1
    UNION ALL
SELECT  'Second' ,2
    UNION ALL
SELECT  'Third' ,3
...

하지만 작은 데이터 집합에만 해당되며, 4개의 레코드에는 문제가 없을 것입니다.

해설 (0)

'' '문법' 값을 사용하는 여러 행뿐만 삽입하십시오 제표를 삽입할 수 있습니다. 이렇게 하려면 여러 컬럼 값을, 쉼표로 구분된 각 인클로우저된 괄호 안에 및 포함시키십시오 목록.

  • Example:*
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
해설 (5)