【问题标题】:Insert into table with multiple values in subquery在子查询中插入具有多个值的表
【发布时间】:2012-11-23 15:44:06
【问题描述】:
INSERT INTO Reference_TB] ([RequestID] ,[WaveID]) 
VALUES (2222,(select tWaveID from @Table2))

我正在使用上面的查询插入到表中。我知道@Table2 有多个tWaveID,这就是它显示错误的原因:

子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。

如何解决这个问题并将twaveID 重复RequestID 作为2222 插入所有条目?

【问题讨论】:

    标签: sql insert


    【解决方案1】:

    使用INSERT ... SELECT 语句代替子查询:

    INSERT INTO Reference_TB] ([RequestID] ,[WaveID]) 
    (select 2222, tWaveID from @Table2)
    

    【讨论】:

    • 太棒了!这正是我想要的。但是,在 SQL Server 中,如果将 columnName FROM Table 部分放在 SELECT 列表的开头,则会出现语法错误。它必须在最后。你知道这是为什么吗?
    【解决方案2】:

    不确定确切的语法,因为您没有指定系统。

    使用插入选择将插入所有值

    INSERT INTO Reference_TB] ([RequestID] ,[WaveID])
    select 2222,tWaveID from @Table2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-30
      • 1970-01-01
      • 1970-01-01
      • 2016-06-20
      • 2011-05-29
      • 2011-04-21
      相关资源
      最近更新 更多