sql-server 오라클 - 단일 SQL 쿼리에 여러 행 삽입?




where절 안에 (5)

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

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

한 번에 삽입 할 데이터 세트가 여러 개 있습니다 (예 : 4 행).

내 테이블에는 Person , IdOffice 라는 세 개의 열이 있습니다.

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 statement 에 4 개의 행을 모두 insert 할 수 있습니까?


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

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

이것에 관해서는 MOC Course 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');

VALUES 구문을 사용하는 INSERT 문은 여러 행을 삽입 할 수 있습니다. 이를 수행하려면 각각 괄호 안에 쉼표로 구분 된 여러 개의 열 값 목록을 포함시킵니다.

예:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

참고 : 이 대답은 SQL Server 2005에 대한 것입니다. SQL Server 2008 이상에서는 다른 대답에서 볼 수있는 훨씬 좋은 방법이 있습니다.

SELECT UNION ALL과 함께 INSERT를 사용할 수 있습니다.

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

작은 데이터 세트에 대해서만, 귀하의 4 레코드에 대해 잘해야합니다.


 Convert(nvarchar(10), getdate(), 101) --->  5/12/14

 Convert(nvarchar(12), getdate(), 101) --->  5/12/2014






sql sql-server tsql insert