C++ 如何在另一个表中使用最后插入的表id
我已经搜索并意识到我可以使用SCOPE,但不知道如何使用它。任何帮助都将不胜感激 这是Options insert语句C++ 如何在另一个表中使用最后插入的表id,c++,sql,sql-server,C++,Sql,Sql Server,我已经搜索并意识到我可以使用SCOPE,但不知道如何使用它。任何帮助都将不胜感激 这是Options insert语句 char sql[256]; sprintf_s(sql, "INSERT INTO Options[Value],[ValuesCorrect],[QuestionId]) VALUES ('%s', '%d', '%d'); " , choice->getValue() , choice->getIsAnswer()
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);
这是我的问题表
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();";
以下查询将返回插入的id
INSERT INTO Options (
[Value]
,[ValuesCorrect]
,[QuestionId]
)
OUTPUT inserted.[YourIdColumnName]
VALUES (
'%s'
,'%d'
,'%d'
)
我已经很久没有使用ADO了,但是代码可能看起来像
pRecordSet->Open(...);
auto id = pRecordSet->Fields->Item[0]->Value;
我已经猜到了。不过还是谢谢你