Table1 に行を挿入しています。この Table1 の最後の Srno(identity) と Table2 の他の値を挿入しています。これらすべてを 1 つのストアド プロシージャで実行しています。
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_ClaimDetails
SrNo(identity) | Remark | BrMkrdt | ...so on
Tbl_ClaimDetails の最後に挿入された SrNo を取得したい