multiple - sql server insert data




在單個SQL查詢中插入多行? (3)

這個問題在這裡已經有了答案:

我有多組數據可以一次插入,比如4行。

我的桌子有三列: PersonIdOffice

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行嗎?


注意:此答案適用於SQL Server 2005.對於SQL Server 2008和更高版本,其他答案中有更好的方法。

你可以使用INSERT和SELECT UNION ALL

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

儘管如此,對於小數據集來說,對於您的4條記錄來說應該沒問題。


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

例:

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

如果您插入到單個表中,則可以像這樣編寫查詢(可能僅在MySQL中):

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




insert