可以使用select語句中的值在一個表中插入多行?
一個例子:使用select語句中的值將多行插入某個表中
INSERT INTO SomeTable (UserID, ModuleID, ModuleRights) VALUES
(u.UserId, 1, 15),
(u.UserId, 2, 1),
(u.UserId, 4, 3),
(u.UserId, 8, 7)
SELECT * FROM Users u
可以使用select語句中的值在一個表中插入多行?
一個例子:使用select語句中的值將多行插入某個表中
INSERT INTO SomeTable (UserID, ModuleID, ModuleRights) VALUES
(u.UserId, 1, 15),
(u.UserId, 2, 1),
(u.UserId, 4, 3),
(u.UserId, 8, 7)
SELECT * FROM Users u
是的,但你需要,你如何做到這一點要小心。在這種情況下,它似乎你想要一個cross join
:
INSERT INTO SomeTable (UserID, ModuleID, ModuleRights)
SELECT u.UserId, v.ModuleID, v.ModuleRights
FROM Users u CROSS JOIN
(VALUES (1, 15),
(2, 1),
(4, 3),
(8, 7)
) v(ModuleID, ModuleRights);
最佳答案。非常感謝。 –
INSERT INTO SomeTable (UserID, ModuleID, ModuleRights)
SELECT u.UserID, u.ModuleID, u.ModuleRights FROM Users u;
如果您ModuleID
和ModuleRights
不是users
表的一部分,然後插入空值或虛值並更換所需要的條件。
插入使用選擇statment多行
insert into tbl_teacher
(fName,
lName,
email,
cNo)
select s.fName,
s.lName,
s.email,
s.cNo
from tbl_student s
Downvoted,因爲這與提前16分鐘提交的vtuhtan答案太相似。答案也格式不好,但我不會爲此而低估。 –
[SQL服務器,請選擇到現有的表(的可能的複製http://stackoverflow.com/questions/4101739/sql-server-select-into-existing-表) – CiucaS