sql-server - 如何从 laravel 中的存储过程中获取最后插入的值?
问题描述
尝试保存数据时,我无法获取数据。我想在插入数据后获取值,我的意思是插入后的数据。
这是我的控制器
控制器.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_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_id
将在通过存储过程后获得价值,那么我怎样才能在控制器上取回该值?
我之前尝试过使用$transactionmemo['crewprogrammemo_id']
但没有解决 - 我该如何解决这个问题?
解决方案
推荐阅读
- octobercms - 如何在十月 CMS 中使用模型工厂?
- java - 带有@JsonView 的 Spring Json-Serialization 返回关联的空对象
- kdb - 选择 kdb 中值的出现次数
- json - VBA 宏:自动化返回 JSON 数据以查询可变数据的 VBA 宏
- python - Networkx:在 MultiDiGraph 上调用时,get_edge_data 返回意外结果
- opengl - glsl 插值限定符在哪里?
- r - 如何在函数中使用预设方法?(expand.grid)
- linux - dpkg: 无法为
- javascript - 未捕获的 ReferenceError:(函数)暗模式未在 HTMLButtonElement.onclick 中定义
- python - cx_Oracle 是否与 flask-python 一起使用?