将新创建的ID插入两个表中

时间:2017-05-26 09:11:05

标签: sql sql-server insert

脚本下方不起作用,但仅在插入单行时才有效。

不应在第一行声明documentId,而应从<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div> <table> <thead> <tr> <th>&nbsp;</th> <th>aaa</th> <th>aaa</th> <th>aaa</th> <th>aaa</th> <th>aaa</th> <th>aaa</th> <th>aaa</th> <th>aaa</th> <th>aaa</th> </tr> </thead> <tbody> <tr> <td>Cell</td> <td>Cell</td> <td>Cell</td> <td>Cell</td> <td>Cell</td> <td>Cell</td> <td>Cell</td> <td>Cell</td> <td>Cell</td> <td>Cell</td> </tr> <tr> <td>Cell</td> <td>Cell</td> <td>Cell</td> <td>Cell</td> <td>Cell</td> <td>Cell</td> <td>Cell</td> <td>Cell</td> <td>Cell</td> <td>Cell</td> </tr> </tbody> </table> </div>表中检索。

我阅读了DOCUMENTS,但不确定如何应用它。

SCOPE_IDENTITY()是自动增量int的主键。

对于插入[dbo].[DOCUMENTS].DOCUMENT_ID表的每一行,需要它自动插入并将其添加到最后一行,并使用新创建的DOCUMENTS填充两个表中定义的DOCUMENT_ID下方。

@documentId

3 个答案:

答案 0 :(得分:1)

由于您将Doucment_ID作为具有自动增量值的主键,因此您不必在第一个Insert语句中传递变量。我在你的插入语句中做了一些修正,看看我的答案。

columnDefs = [];
customColumn = {headerName: header_template, field: name};
columnDefs.push(customColumn);

答案 1 :(得分:0)

首先,你无法插入自动增量列而不在

上设置其身份
    declare @documentId int;
    --set @documentId = (SELECT MAX(DOCUMENT_ID) FROM dbo.DOCUMENTS)+ 1

    INSERT INTO [dbo].[DOCUMENTS] (DOCUMENT_TYPE      ,DOCUMENT_REF      ,DOCUMENT_NOTE      ,DOCUMENT_DATE      ,LAST_UPDATE_ID      ,LAST_UPDATE_DATE      ,DOCUMENT_FUNCTION_CODE      ,BATCH_ID      ,AUDIT_XML      ,AUDIT_USER      ,REMINDER_DATE)
         SELECT     NULL,     NULL,     'MIGRATED FROM BRING UP NOTES ' + CAST(GETDATE() AS VARCHAR(20)) + ' ' + sr.BRINGUP_NOTES,     GETDATE(),     NULL,     NULL,     NULL,     NULL,     NULL,     NULL,     sr.BRINGUP_DATE
         FROM [dbo].[SERVICE_REQUESTS] sr

    set @documentid=@@identity() 

--or      set @documentid=SCOPE_Identity()  


    ----- Insert into another table ------------
    INSERT INTO [dbo].[SERVICE_REQUEST_ITEM_DOCS] (
      [SERVICE_REQUEST_ID]
          ,[SERVICE_REQUEST_ITEM_SEQNO]
          ,[DOCUMENT_ID]
          ,[LAST_UPDATE_ID]
          ,[LAST_UPDATE_DATE]
          ,[COVER_LETTER])
         SELECT 
         sr.SERVICE_REQUEST_ID,
         1,
         @documentId,
         0,
         GETDATE(),
         0
         FROM [dbo].[SERVICE_REQUESTS] sr

答案 2 :(得分:0)

假设DOCUMENT_ID是标识列,您可以使用输出子句来获取新ID,例如:

DECLARE @DOCUMENT_ID int
DECLARE @TID TABLE (DOCUMENT_ID int)

INSERT INTO SERVICE_REQUEST_ITEM_DOCS (Col1, Col2, Col3)
    OUTPUT inserted.DOCUMENT_ID INTO @TID(DOCUMENT_ID)
    VALUES ('val1', 'val2', 'val3')

SELECT @DOCUMENT_ID = DOCUMENT_ID FROM @TID