尝试从另一个表插入多行数据时出错

时间:2019-02-27 05:08:27

标签: sql-server

我想多次插入到table2中。我想向列1中插入相同的@foreignId次数与select name from table1 where id = @id

中的行一样多
    Insert into table2(column1, column2)
    values(@foreignId, (Select name from table1 where id = @id)) 

我收到错误

  

子查询返回了多个值。当   子查询遵循=,!=,<,<=,>,> =,或当子查询用作   表达式。

4 个答案:

答案 0 :(得分:3)

尝试一下

   GO
   Insert into table2 (column1, column2)
   Select @foreignId, name from table1 where id = @id  
   GO

答案 1 :(得分:2)

尝试使用INSERT INTO ... SELECT构造:

INSERT INTO table2 (column1, column2)
SELECT @foreignId, name
FROM table1
WHERE id = @id;

我什至不知道SQL Server是否会在VALUES子句中接受任何类型的子查询,但是即使这样,通过错误消息,该子查询也会返回多行。使用有关的建议是解决此问题的一种方法。

答案 2 :(得分:1)

选择不应用作子查询。您应该尝试以下查询。

Insert into table2(column1, column2)
Select @foreignId, name from table1 where id = @id

答案 3 :(得分:1)

您可以尝试

CDate(Me.tbDate.Value)