Php Laravel&MSSQL存储过程-插入后返回id

Php Laravel&MSSQL存储过程-插入后返回id,php,sql-server,stored-procedures,laravel,Php,Sql Server,Stored Procedures,Laravel,在向数据库传递参数时,我选择在控制器中使用存储过程 范例 $insert = DB::statement( "EXEC dbo.insertSomething ?", array( $value ) ); 参数是根据我在SP中的SQL代码传递和插入的。然后我尝试返回SCOPE_标识,当直接在DB级别执行时,该标识显示为fine。但是,当我试图通过SP将相同的值返回到Laravel中时,我只得到表示SP已执行的资源1 我也试过了 $insert = DB::select( "EXEC dbo.i

在向数据库传递参数时,我选择在控制器中使用存储过程

范例

$insert = DB::statement( "EXEC dbo.insertSomething ?", array( $value ) );
参数是根据我在SP中的SQL代码传递和插入的。然后我尝试返回SCOPE_标识,当直接在DB级别执行时,该标识显示为fine。但是,当我试图通过SP将相同的值返回到Laravel中时,我只得到表示SP已执行的资源1

我也试过了

$insert = DB::select( "EXEC dbo.insertSomething ?", array( $value ) );
而是出错并声明查询的活动结果不包含任何字段

有什么办法可以做到这一点吗?我需要插入记录的id,以便将所需的功能添加到我的应用程序中

更新以显示SQL

插入发生后

DECLARE @ObjectID int;
SET @ObjectID = SCOPE_IDENTITY();

RETURN @ObjectID -- Doesn't work
SELECT @ObjectID AS ObjectID -- Doesn't work
谢谢,
DigiBathe

您的范围标识是如何返回的?使用RETURN,SELECT,一个输出参数?嗨,Aaron,我试过RETURN和SELECT,两者都不起作用。你应该使用一个输出参数。那就去查一下Laravel的文件他们有没有?了解如何在存储过程调用后检索输出参数。它们没有任何关于使用SPs的文档,只有纯SQL。不过还是谢谢你。试试DB::select set noncount on EXEC dbo.insertSomething?,数组$value;