Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何返回在当前会话和当前作用域中为特定表生成的上一个标识值_Asp.net_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

Asp.net 如何返回在当前会话和当前作用域中为特定表生成的上一个标识值

Asp.net 如何返回在当前会话和当前作用域中为特定表生成的上一个标识值,asp.net,sql,sql-server,sql-server-2008,Asp.net,Sql,Sql Server,Sql Server 2008,我在表1中插入一行。 我正在插入表1的最后一个Srno(标识)和表2中的一些其他值 我在一个存储过程中完成了所有这一切 CREATE PROCEDURE proc_test1 ( @MultipleImgsTvp AS testdbtype READONLY, @ClaimDetailsTvp AS testdbtype1 READONLY ) AS BEGIN INSERT INTO dbo.Tbl_ClaimDetails (BranchRemark, BrMkr

我在表1中插入一行。 我正在插入表1的最后一个Srno(标识)和表2中的一些其他值 我在一个存储过程中完成了所有这一切

CREATE PROCEDURE proc_test1 
(
    @MultipleImgsTvp AS testdbtype READONLY,
    @ClaimDetailsTvp AS testdbtype1 READONLY
)
AS BEGIN

    INSERT INTO dbo.Tbl_ClaimDetails (BranchRemark, BrMkrid, BrMkrdt, BAZClaimNo, HORemark, HoMkrid, hoMkrdt, ClaimType, ContactDetails, VendorName)
    SELECT  BranchRemark
        ,   BrMkrid
        ,   GETDATE()
        ,   BAZClaimNo
        ,   HORemark
        ,   HoMkrid
        ,   GETDATE()
        ,   ClaimType
        ,   ContactDetails
        ,   VendorName
    FROM @ClaimDetailsTvp

    DECLARE @id INT = SCOPE_IDENTITY()

    DECLARE @ClaimNo VARCHAR(25)
    SET @ClaimNo = (
        SELECT Em_Branchcdnew
        FROM tbl_xyz
        WHERE Em_empid = (SELECT BrMkrid FROM @ClaimDetailsTvp)
    ) + '/' + LEFT(CONVERT(VARCHAR, GETDATE(), 111), 8) + CONVERT(VARCHAR, @ID)

    UPDATE Tbl_ClaimDetails
    SET ClaimNo = @ClaimNo
    WHERE Srno = @ID

    ----------  
    INSERT INTO Tbl_ClaimImages (img, id, imgname)
        SELECT  img
            ,   id
            ,   imgname
        FROM @MultipleImgsTvp
    ----------  

END
但我的ID总是0

更新

Tbl\u索赔详情

SrNo(identity)|备注| BrMkrdt |…等等


我想获取最后插入的Tbl_ClaimDetails的SrNo

如果我理解正确,您可以使用查询的输出部分,如下所示:

INSERT INTO dbo.Tbl_ClaimDetails (BranchRemark, BrMkrid, BrMkrdt, BAZClaimNo, HORemark, HoMkrid, hoMkrdt, ClaimType, ContactDetails, VendorName)
 OUTPUT inserted.id INTO @ID
    SELECT  BranchRemark
        ,   BrMkrid
        ,   GETDATE()
        ,   BAZClaimNo
        ,   HORemark
        ,   HoMkrid
        ,   GETDATE()
        ,   ClaimType
        ,   ContactDetails
        ,   VendorName
    FROM @ClaimDetailsTvp

对于输出部分,您可以使用inserted.column访问插入的行数据。如果我理解正确,您可以使用查询的输出部分,如下所示:

INSERT INTO dbo.Tbl_ClaimDetails (BranchRemark, BrMkrid, BrMkrdt, BAZClaimNo, HORemark, HoMkrid, hoMkrdt, ClaimType, ContactDetails, VendorName)
 OUTPUT inserted.id INTO @ID
    SELECT  BranchRemark
        ,   BrMkrid
        ,   GETDATE()
        ,   BAZClaimNo
        ,   HORemark
        ,   HoMkrid
        ,   GETDATE()
        ,   ClaimType
        ,   ContactDetails
        ,   VendorName
    FROM @ClaimDetailsTvp

在输出部分,您可以使用inserted.column访问插入的行数据。最后的insert语句不应该是:

 INSERT INTO Tbl_ClaimImages (img, id, imgname)
        SELECT  img
            ,   @id
            ,   imgname
        FROM @MultipleImgsTvp

Raj

您的最终插入语句不应该是:

 INSERT INTO Tbl_ClaimImages (img, id, imgname)
        SELECT  img
            ,   @id
            ,   imgname
        FROM @MultipleImgsTvp

Raj

请向我们展示表Tbl_ClaimDetails的模式,哪一列是标识列?此链接可能会有所帮助。使用不同的方法检索id可能会有所帮助@astander请查看更新。我想从Tbl_ClaimDetails中获取最后插入行的SrNo,然后使用该SRN将行插入Tbl_ClaimImages。请向我们显示表Tbl_ClaimDetails的架构,哪一列是标识列?此链接可能会有所帮助。使用不同的方法检索id可能会有所帮助@astander请查看更新。我想从Tbl_ClaimDetails中获取最后插入行的SrNo,然后使用该SrNo+1将行插入Tbl_ClaimImages,以吸引眼球,并标记为正确答案。我可能会花几个世纪的时间试图找出问题所在。谢谢,先生+1表示吸引眼球,并标记为答案表示正确答案。我可能会花几个世纪的时间试图找出问题所在。谢谢,先生我真的不明白<代码>插入。列?是否插入了
sql关键字或其他内容?是。在输出部分,“插入的”函数类似于表名。它也有智能感知。你可以在这篇文章中找到更多我不太理解的信息/例子<代码>插入。列
?是否插入了
sql关键字或其他内容?是。在输出部分,“插入的”函数类似于表名。它也有智能感知。您可以在本文中找到更多信息/示例