0

使用带有嵌套选择的 INSERT 语句时遇到问题。该查询在 SQLManagement Studio 中执行时有效,但在代码中执行时返回错误。

查询看起来像:

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

是否有对此的解释以及如何解决此问题,因为除了执行单独的选择查询之外,我不知道 Status 的 id 是什么?

4

2 回答 2

3

你可以试试这个...

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'

该错误是有道理的,因为您可能有来自子查询的多行。在我的建议中,你也可以得到多行。过滤器应该还有更多吗?

于 2010-09-08T08:51:27.970 回答
1

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

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);
于 2010-09-08T08:53:50.663 回答