是否可以在一个包含一个insert语句的表中插入多行? 我知道如果我这样做会发生:
insert into table ( fields ) select values from another_table
但如果我想插入怎么办?
row 1 - ( a1, b1, c1 )
row 2 - ( a2, b2, c2 )
...
row n - ( an, bn, cn )
只有一个插入命令?
答案 0 :(得分:7)
两个解决方案(来源:http://appsfr.free.fr/spip.php?article21):
INSERT ALL
INTO table (column1, column2)
VALUES (value1, value2)
INTO table (column1, column2)
VALUES (value1, value2)
...etc...
SELECT * FROM DUAL ;
或
INSERT INTO table (column1, column2)
SELECT value1, value2 FROM DUAL UNION ALL
SELECT value1, value2 FROM DUAL UNION ALL
...etc...
SELECT value1, value2 FROM DUAL ;
答案 1 :(得分:5)
INSERT ALL
INTO mytable (column1, column2, column3) VALUES ('val1.1', 'val1.2', 'val1.3')
INTO mytable (column1, column2, column3) VALUES ('val2.1', 'val2.2', 'val2.3')
INTO mytable (column1, column2, column3) VALUES ('val3.1', 'val3.2', 'val3.3')
SELECT * FROM dual;
答案 2 :(得分:3)
INSERT INTO products (product_no, name, price) VALUES
(1, 'Cheese', 9.99),
(2, 'Bread', 1.99),
(3, 'Milk', 2.99);
答案 3 :(得分:0)
INSERT INTO College (CustomerID, FirstName, MiddleName, LastName)
SELECT 7, N'Charles', N'Simmons', N'Burns'
UNION ALL
SELECT 9, N'Dominic', N'Fred', N'Einsten'
UNION ALL
SELECT 12, N'Dave', N'William, N'Bryan';
注意: 每个硬编码字符串值之前的字母N将字符串转换为NVARCHAR值以匹配列的数据类型。
答案 4 :(得分:-5)
不,这是不可能的。正如您已经说过的那样,只有select子句才能提供插入值和行。