【发布时间】:2016-09-23 07:12:46
【问题描述】:
我正在尝试使用Stored Procedure 创建一个查询。我能够创建它并且运行它时没有问题。这是我的存储过程
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE SP_Penilaian
@Nip varchar(50)
AS
BEGIN
select * INTO #tMP from historyposition where nip = ''+@Nip+'' order by approveddate desc
declare @NewPosition varchar(50), @NewPositionLast varchar(50), @ApproveDate datetime, @ApproveDateLast datetime
select top 1 @NewPositionLast = NewPosition, @ApproveDateLast=ApprovedDate from #tmp
WHILE EXISTS (SELECT * FROM #tMP)
BEGIN
select top 1 @NewPosition = NewPosition, @ApproveDate=ApprovedDate from #tmp
if (@NewPosition = @NewPositionLast)
begin
set @NewPositionLast = @NewPosition
set @ApproveDateLast = @ApproveDate
end
else
begin
break
end
delete top(1) #tMP
END
select @NewPositionLast 'LatesUpgradePosition' , @ApproveDateLast 'LatesUpgradeDate'
END
GO
这就是我的运行方式
sp_penilaian '1500060'
结果如下
好的。问题是当我试图在 Codeigniter 中调用我的 SP 时。
$nip = '1500060';
$filt_outlet = $this->db->query("SP_Penilaian '".$nip."'")->row();
然后我试图用这个检查我的数据
echo "<pre>".print_r($filt_outlet)."</pre>";
但我得到空数据。那么如何在 CodeIgniter 中使用临时表呢?或者如果我不能使用临时表,我可以创建表并将其放入我的存储过程中吗?
对不起,我的英语不好。
【问题讨论】:
-
为什么存储过程如此复杂?您只需要最近更新的位置和日期/时间 - 只需通过查询即可获得。不需要临时表,不需要动态 sql。 #avoid-the-rbar
-
好吧,我只是好奇为什么每个包含
#表的 SP 都不起作用。我没有使用这个SP。我只是在我的 PHP 中编写了一个查询。
标签: sql sql-server codeigniter stored-procedures