简体   繁体   English

如何在另一个表中使用表的最后插入的ID

[英]How to use Last inserted id of a Table in Another Table

I have searched and realized i can use SCOPE but am not sure how to use it. 我已经搜索并意识到我可以使用SCOPE,但不确定如何使用它。 Any help will be appreciated 任何帮助将不胜感激

This is Options insert statement 这是选项插入语句

char sql[256];
    sprintf_s(sql, "INSERT INTO Options[Value],[ValuesCorrect],[QuestionId]) VALUES ('%s', '%d', '%d'); " 
        , choice->getValue()
        , choice->getIsAnswer()
        , choice->getQuestionId());
        pRecordSet->Open(sql, pConnection.GetInterfacePtr(), adOpenForwardOnly, adLockReadOnly, adCmdText);

This is my my Question Table 这是我的问题表

char sql[256];
    "DECLARE @ID = BIGINT";
    sprintf_s(sql, "INSERT INTO Questions([Query],[CompetencyLevel],[TopicId]) VALUES('%s', %d, %d); "
        ,(const char*)question->getQuery()
        , question->getCompetencyLevel()
        ,question->getTopicId());
    pRecordSet->Open(sql, pConnection.GetInterfacePtr(), adOpenForwardOnly, adLockReadOnly, adCmdText);
    "SELECT@ID = SCOPE_IDENTITY();";

The following query will return the inserted id 以下查询将返回插入的ID

INSERT INTO Options (
    [Value]
   ,[ValuesCorrect]
   ,[QuestionId]
) 
OUTPUT inserted.[YourIdColumnName]
VALUES (
   '%s'
  ,'%d'
  ,'%d'
)

A long time since I used ADO but the code could look something like 自从我使用ADO很久以来,但是代码可能看起来像

pRecordSet->Open(...);
auto id = pRecordSet->Fields->Item[0]->Value;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM