【发布时间】:2014-03-27 10:53:32
【问题描述】:
这很奇怪,当我在 sp 中有“begin tran”时,它不会返回任何行,但如果带走,它可以正常工作。为什么会这样?我正在使用 codeigniter sqlsrv 数据库驱动程序。
sp
ALTER proc [dbo].[sp_test] @MembershipId int, @CardNumber varchar(50) as
begin tran
select 'hello world' hi
commit tran
php
$sql = sprintf("EXEC [sp_test] @MembershipId=0,@CardNumber=123");
$query = $this->oDb->query($sql);
print_r($query->result());
【问题讨论】:
-
如果只有 1 个 select 语句,为什么还需要事务?
-
这是一个非常简化的 sp,并不能反映我对多重语句的真实 sp。这只是为了说明问题。
-
很公平。您的 SP 中是否有对应的
COMMIT或ROLLBACK? -
是的,我有,刚刚编辑了 sp。它仍然没有返回任何行。
-
好的,当您直接从 SSMS 或其他地方运行时,您的实际存储过程是否返回任何结果?
标签: php sql sql-server codeigniter sqlsrv