Sql server 如何从laravel中的存储过程中获取最后插入的值?

Sql server 如何从laravel中的存储过程中获取最后插入的值?,sql-server,laravel,Sql Server,Laravel,我在试图保存数据时遇到获取数据的问题。我想在插入数据后得到值,我指的是插入数据后的数据 这是我的控制器 controller.php $transactionmemo = DB::connection('sqlsrv2')->insert('sp_Crewprogrammemo_Insert ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array($crewprogrammemo_id, $crewprogrammemoNumber

我在试图保存数据时遇到获取数据的问题。我想在插入数据后得到值,我指的是插入数据后的数据

这是我的控制器

controller.php

  $transactionmemo = DB::connection('sqlsrv2')->insert('sp_Crewprogrammemo_Insert ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', 
        array($crewprogrammemo_id,
        $crewprogrammemoNumber,
        $showFocusId,
        $showName,
        $crewprogrammemoDescription,
        $crewprogrammemoIsapproved,
        $crewprogrammemoApprovedby,
        $crewprogrammemoApproveddate,
        $crewprogrammemoIsdisabled,
        $crewprogrammemoDisabledby,
        $crewprogrammemoDisableddate,
        $crewprogrammemoCreatedby,
        $crewprogrammemoCreateddate,
        $crewprogrammemoModifiedby,
        $crewprogrammemoModifieddate 
    ));

    $lastinsertedid = $transactionmemo['crewprogrammemo_id'];

    dd($lastinsertedid)
我得到了空数据,我的
crewprogrammemo\u id
最初是空的,但值将在存储过程中创建

存储过程:

ALTER PROCEDURE [dbo].[sp_Crewprogrammemo_Insert]
    @crewprogrammemo_id AS varchar(50), 
    @crewprogrammemo_number AS varchar(125), 
    @show_focus_id AS varchar(50), 
    @show_name AS varchar(255), 
    @crewprogrammemo_description AS varchar(1000), 
    @crewprogrammemo_isapproved AS tinyint, 
    @crewprogrammemo_approvedby AS varchar(50), 
    @crewprogrammemo_approveddate AS datetime, 
    @crewprogrammemo_isdisabled AS tinyint, 
    @crewprogrammemo_disabledby AS varchar(255), 
    @crewprogrammemo_disableddate AS datetime, 
    @crewprogrammemo_createdby AS varchar(255), 
    @crewprogrammemo_createddate AS datetime, 
    @crewprogrammemo_modifiedby AS varchar(255), 
    @crewprogrammemo_modifieddate AS datetime
AS 
BEGIN 
    DECLARE @errormessage as nvarchar(100);
    DECLARE @type as nvarchar(2)

    SET @type = 'CP' 

    DECLARE @channel as nvarchar(3)
    SET @channel = 'tv7' 

    EXEC sp_sequencer_transaction @type, @crewprogrammemo_id OUTPUT

    IF @crewprogrammemo_id IS NULL OR @crewprogrammemo_id = '' 
    BEGIN
        SET @errormessage = 'Booking request ID null, Booking request cannot be saved!';
        RAISERROR (@errormessage, 16, 1);
        RETURN;
    END 

    INSERT INTO transaction_crewprogrammemo (crewprogrammemo_id,  crewprogrammemo_number, show_focus_id, show_name, crewprogrammemo_description,  crewprogrammemo_isapproved, crewprogrammemo_approvedby, crewprogrammemo_approveddate, crewprogrammemo_isdisabled,  crewprogrammemo_disabledby, crewprogrammemo_disableddate,  crewprogrammemo_createdby, crewprogrammemo_createddate,  crewprogrammemo_modifiedby, crewprogrammemo_modifieddate)
    VALUES (@crewprogrammemo_id, @crewprogrammemo_number, @show_focus_id, @show_name, @crewprogrammemo_description, @crewprogrammemo_isapproved, @crewprogrammemo_approvedby, @crewprogrammemo_approveddate, @crewprogrammemo_isdisabled, @crewprogrammemo_disabledby, @crewprogrammemo_disableddate, @crewprogrammemo_createdby, @crewprogrammemo_createddate, @crewprogrammemo_modifiedby, @crewprogrammemo_modifieddate)

    SELECT 
        crewprogrammemo_id, crewprogrammemo_number, show_focus_id, show_name,  
        crewprogrammemo_description, crewprogrammemo_isapproved,
        crewprogrammemo_approvedby, crewprogrammemo_approveddate,  
        crewprogrammemo_isdisabled, crewprogrammemo_disabledby,  
        crewprogrammemo_disableddate, crewprogrammemo_createdby,  
        crewprogrammemo_createddate, crewprogrammemo_modifiedby,  
        crewprogrammemo_modifieddate
    FROM 
        transaction_crewprogrammemo
    WHERE 
        crewprogrammemo_id = @crewprogrammemo_id
END 
我的
crewprogrammemo\u id
在经过存储过程后将被赋予值,那么我如何在控制器上获得该值呢


我以前试过使用
$transactionmemo['crewprogrammemo\u id']
,但没有成功-我如何解决这个问题?

使用
输出
参数存储在那里。或者可能使用子句实际上我是初学者,在哪里可以得到输出?使用
output
参数存储在那里。或者可能使用从句实际上我是初学者,在哪里可以得到输出?