在單個SQL查詢中插入多行? [重複]

我有一組數據要一次插入,好比4行。 spa

個人表有三列: PersonIdOfficecode

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 insert全部4行嗎? server


#1樓

若是要插入單個表,則能夠像這樣編寫查詢(可能只在MySQL中): blog

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

#2樓

注意:此答案適用於SQL Server 2005.對於SQL Server 2008及更高版本,有更好的方法,如其餘答案中所示。 ip

您能夠在SELECT UNION ALL中使用INSERTget

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

僅適用於小型數據集,對於您的4條記錄應該沒問題。 it


#3樓

在SQL Server 2008中,您能夠使用單個SQL INSERT語句插入多行。 io

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

有關參考,請參閱MOC課程2778A - 在SQL Server 2008中編寫SQL查詢。 table

例如:

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

#4樓

使用VALUES語法的INSERT語句能夠插入多行。 爲此,請包含多個列值列表,每一個列值都括在括號內並用逗號分隔。

例:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
相關文章
相關標籤/搜索