代码之家  ›  专栏  ›  技术社区  ›  fluf

Insert with select subquery using SqlCommand插入

  •  0
  • fluf  · 技术社区  · 14 年前

    查询如下所示:

    INSERT INTO [Projects] 
         VALUES ('1', 'None', '2', '2010/09/08 10:36:30 AM', 4, 1, 4, '6', '', 'n/a', 'no', 'n/a', 'None', 0, 'n/a', 'n/a', 'no', 'A3', 'no', 'Blnk', 'aa',
      (SELECT status.statusID from status where name = 'STOPPED')
    

    )

    返回错误:

    Subqueries are not allowed in this context. Only scalar expressions are allowed
    

    除了执行一个单独的select查询外,我不知道状态的id是什么,有没有解释这个问题以及如何解决这个问题?

    2 回复  |  直到 14 年前
        1
  •  3
  •   gbn    14 年前

    你可以试试这个。。。

    INSERT INTO [Projects] 
    SELECT '1', 'None', '2', '2010/09/08 10:36:30 AM', 4, 1, 4, '6', '', 'n/a', 'no', 'n/a', 'None', 0, 'n/a', 'n/a', 'no', 'A3', 'no', 'Blnk', 'aa',
    status.statusID from status where name = 'STOPPED'
    

        2
  •  1
  •   AEMLoviji    14 年前

    最好的方法是创建存储过程。

    declare @statusID int;
    
    SELECT @statusID=status.statusID from status where name = 'STOPPED'
    
    INSERT INTO [Projects] 
         VALUES ('1', 'None', '2', '2010/09/08 10:36:30 AM', 4, 1, 4, '6', '', 'n/a', 'no', 'n/a', 'None', 0, 'n/a', 'n/a', 'no', 'A3', 'no', 'Blnk', 'aa',@statusID);