无效的游标状态 问题!请教!
在表中建立了出发器,但向表中插入数据时总是出现 无效的游标状态 错误提示,触发器代码如下:
CREATE TRIGGER [InsMo] ON [dbo].[em_mo_tran]
After INSERT
AS
Declare @ID int
Declare @Trancallback char(20)
Declare @TranMsg varchar(255)
Declare @MemberCode char(20)
Declare @Res varchar(255)
Declare @CycID int
Declare @TranPhone char(20)
select @CycID=SysParaValue from t_SysPara where SysParaName='CurrentCycle'
select @ID=tran_pr,@Trancallback=tran_callback,@TranMsg=tran_msg,@TranPhone=tran_phone from inserted
--查找已经绑定手机的会员
if not Exists(select MemberCode from t_Member where Mobile=@Trancallback)
begin
set @Res ='对不起,您的手机未与您的卡号绑定,无法向您提供相关信息.'
goto ret
end
select @MemberCode=MemberCode from t_Member where Mobile=@Trancallback
--简单查询
Declare @ReplayMsg varchar(255)
Declare @OprID char(2)
Declare @Result varchar(20)
if len(Rtrim(Ltrim(@TranMsg)))=0
return
if Exists(select * from t_ReMsg where inCode=Rtrim(Ltrim(@TranMsg)))
begin
select @ReplayMsg=RTrim(LTrim(ReplayMsg)),@OprID=QryCode from t_ReMsg where inCode=Rtrim(Ltrim(@TranMsg))
if @OprID='01' --整组业绩
begin
select @Result=CurAllGroupInt from t_Member where MemberCode=@MemberCode
end
if @OprID='02' --小组业绩
begin
select @Result=CurGroupInt from t_Member where MemberCode=@MemberCode
end
if @OprID='03' --零售利润
begin
select @Result=CurSalesInt from t_Member where MemberCode=@MemberCode
end
if @OprID='04' --差额奖金
begin
select @Result=CurBalanceInt from t_Member where MemberCode=@MemberCode
end
if @OprID='05' --管理奖金
begin
select @Result=CurManageInt from t_Member where MemberCode=@MemberCode
end
if @OprID='06' --推荐奖金
begin
select @Result=CurRecommendInt from t_Member where MemberCode=@MemberCode
end
if @OprID='07' --超额推荐
begin
select @Result=CurSupRecommendInt from t_Member where MemberCode=@MemberCode
end
if @OprID='08' --达成奖金
begin
select @Result=CurAchieveInt from t_Member where MemberCode=@MemberCode
end
if @OprID='09' --旅游奖金
begin
select @Result=CurTourInt from t_Member where MemberCode=@MemberCode
end
if @OprID='10' --累计旅游
begin
select @Result=TourCounts from t_Member where MemberCode=@MemberCode
end
if @OprID='11' --供车奖金
begin
select @Result=CurCarInt from t_Member where MemberCode=@MemberCode
end
if @OprID='12' --累计供车
begin
select @Result=CarCounts from t_Member where MemberCode=@MemberCode
end
if @OprID='13' --供房奖金
begin
select @Result=CurHomeInt from t_Member where MemberCode=@MemberCode
end
if @OprID='14' --应发奖金
begin
select @Result=CurProvide from t_Member where MemberCode=@MemberCode
end
if @OprID='15' --实发奖金
begin
select @Result=CurBonus from t_Member where MemberCode=@MemberCode
end
if @OprID='16' --本期报单积分
begin
select @Result=TotalIntegral from vw_DeclarationCounts where MemberCode=@MemberCode and Cycle=@CycID
end
if @OprID='99' --帮助信息
begin
set @Res=@ReplayMsg
goto ret
end
set @Res=Replace(@ReplayMsg,'[Value]',RTrim(LTrim(@Result)))
end
else
begin
set @Res='对不起,您的查询输入有错误,如需帮助请您发送 HELP 查询操作方式.'
end
ret: --返回信息
--插入返回信息表
Insert into em_tran_test(tran_phone, tran_callback,tran_status, tran_date, tran_msg)
Values(@Trancallback,'','1',getdate(),@Res)
insert into t_em(tranphone,trancallback,trandate,tranmsg,ReturnMsg,ReturnTime)
Values(@TranPhone,@Trancallback,getdate(),@TranMsg,@Res,getdate())
去掉最后两个插入语句任何一句都不会报错了,真是头疼啊!数据表都没有任何特殊,也没有使用任何自定义的函数或规则,写过很多触发器都没有出现过这样的问题,请教各位大虾江湖救急啊!快急疯了!