从select中获取多行INSERT INTO sql查询

时间:2014-07-04 21:36:30

标签: sql sql-server tsql

我想在表中插入多行,但每行的值将从子查询中获取。

这是伪代码我想要什么:

INSERT INTO Entries VALUES
                (
                    @Date,
                    (SELECT Users.ID 
                    FROM Users),
                    @Enter,
                    @Leave
                )

用户当然有多行。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

您需要insert . . . select形式的insert:

INSERT INTO Entries
    SELECT @Date, Users.ID , @Enter, @Leave
    FROM Users;

你应该养成明确列出列的习惯;这是使用SQL时的好习惯。类似的东西:

INSERT INTO Entries(Date, UserId, Enter, Leave)
    SELECT @Date, Users.ID , @Enter, @Leave
    FROM Users;

答案 1 :(得分:0)

尝试这个未经测试的查询:

INSERT INTO Entries (SELECT @Date,Users.ID , @Enter,  @Leave FROM Users)