2013-11-21 18 views
1

我已經搜索並意識到我可以使用SCOPE,但不知道如何使用它。任何幫助將不勝感激如何在另一個表格中使用最後插入的表格的編號

這是選項insert語句

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); 
    "[email protected] = SCOPE_IDENTITY();"; 

回答

0

下面的查詢將返回插入的ID

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

一很長一段時間,因爲我使用ADO,但代碼可能看起來像

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

我已經想通了。但是,無論如何謝謝 – user3017192

相關問題