2012-07-30 48 views
1

我想使用一个插入sql查询插入多行。我知道可以在一个sql查询中插入多行。使用子查询在sql中插入多行

我已经写了一些查询作为
insert into test values ((select loan_id from loan_transaction_mcg))

,但我收到的错误
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

反正是有插入数据像这个样子。我在test表中有单列。

+1

注意,[手册](http://msdn.microsoft.com/en-US/library/ms174335.aspx “INSERT(的Transact-SQL)”)提到相应的语法('INSERT。 ... SELECT')并且具有[示例](http://msdn.microsoft.com/zh-cn/library/ms174335.aspx#OtherTables“INSERT(Transact-SQL):Insert Other Data from Other Tables”)。 – 2012-07-30 12:05:50

回答

2

假设您的测试表已经创建并且只包含一个loan_id,您只需要删除values并删除现在冗余的括号。

INSERT INTO test SELECT loan_id FROM loan_transaction_mcg 
+0

为什么我必须删除括号。我对此感到困惑。 – 2012-07-31 03:56:25

+0

@Dinupkandel - 你实际上没有*拥有*但他们*是多余的。我会编辑答案以更好地反映这一点。 – 2012-07-31 07:07:20