1

我想从给定的表中复制一行并插入到同一个表中的一个新行中,该行具有不同的列 ID。

询问:

INSERT INTO ESurvey_Question(QuestionTypeID, Question, HoriVertID, IsMandatory, FillIn, QuestionRank, Choice_Limit,SurveyID )
   SELECT 
       QuestionTypeID, Question, HoriVertID, IsMandatory, FillIn, QuestionRank, 
       Choice_Limit, @NewSUID as SurveyID 
   FROM ESurvey_Question 
   WHERE SurveyID = @ExistingSUID

@ExistingSUID= 64
@@NewSUID = 115

SurveyID是外键,我想用新的ID来改变它。

QuestionID是主键 ( IDENTTITY)。

我收到此错误:

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

4

1 回答 1

0

我在本地机器上测试了类似的语句,没有收到任何错误。但是,您的错误消息告诉我们您正在使用子查询,但您实际上并没有在此处执行此操作。

是否缺少某些代码?也许SurveyID = @ExistingSUID是通过子查询设置的?如果是这样,如错误消息所示,结果不能超过一个。(如果你需要这个,使用SurveyID IN ...

于 2012-07-05T12:21:33.780 回答