【发布时间】:2021-02-16 17:52:25
【问题描述】:
下面是我正在使用的代码。 sellprice、type、BandID 和 IsPercent 是常量 我期待插入多行,因为有多个产品的描述 XYZ
Insert into Table1 ([itemid],[SellingPrice],[Type],[BandID],[IsPercent])
values
((select ID from Table2 where Description like '%XYZ%'),26.5,0,20,1);
但我收到错误“子查询返回超过 1 个值” 如何使用其他列值的常量从一个表中插入多个值,但不是全部?
【问题讨论】:
-
语法是
INSERT .. SELECT而不是VALUES。 VALUES 指定具体值 -
@PanagiotisKanavos
VALUES是一种完全可以接受的格式,自 SQL Server 2008(甚至可能是 2005 年)起就已受支持。请参阅documnetation 的示例 A 和 B。 -
@Larnu
VALUES一直存在,不仅仅是从 2005 年开始,而且它从来不应该包含查询结果。当我发布评论时,额外的值被隐藏在右侧。无论如何,要让这个查询工作INSERT SELECT是必需的。如果子查询仅返回单个值,则可以使用VALUES但这确实……不寻常 -
问题是你的评论好像在说
VALUES根本不是有效的语法,@PanagiotisKanavos ;这根本不是真的。INSERT...VALUES是有效的语法,它只是不是 OP 应该使用的语法。 -
似乎是一个与您的previous question 非常相似的问题。
标签: sql-server select sql-insert