MSSQL 触发器调用有返回值的存储过程,测试没有返回,不知道啥原因? 50
USE[NStarcomBJ]GOSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOALTERTrigger[dbo].[tg_Write...
USE [NStarcomBJ]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Trigger [dbo].[tg_WritePay]
On [dbo].[Table]
for Update
As
if Update(FCheckerID)
BEGIN
--SET NOCOUNT ON
DECLARE @InterID int
DECLARE @CheckerID int
DECLARE @Return VARCHAR(2),@Desc VARCHAR(255),@return_status INT
select @return_status=0,@Desc=''
select @InterID=FInterID,@CheckerID=isnull(FCheckerID,0) from inserted
if @CheckerID>0
BEGIN
EXEC @return_status=yspCreateWipVoucherNoEvent 200000008,@InterID,@CheckerID,@Desc out
IF ISNULL(@Desc,'')<>''
BEGIN
RAISERROR(@Desc,16,1) WITH NOWAIT
END
END
END
我测试的时候有把
RAISERROR(@return_status,16,1) WITH NOWAIT
放在判断前面,没有客户端提示信息,所有判定执行没有返回值 展开
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Trigger [dbo].[tg_WritePay]
On [dbo].[Table]
for Update
As
if Update(FCheckerID)
BEGIN
--SET NOCOUNT ON
DECLARE @InterID int
DECLARE @CheckerID int
DECLARE @Return VARCHAR(2),@Desc VARCHAR(255),@return_status INT
select @return_status=0,@Desc=''
select @InterID=FInterID,@CheckerID=isnull(FCheckerID,0) from inserted
if @CheckerID>0
BEGIN
EXEC @return_status=yspCreateWipVoucherNoEvent 200000008,@InterID,@CheckerID,@Desc out
IF ISNULL(@Desc,'')<>''
BEGIN
RAISERROR(@Desc,16,1) WITH NOWAIT
END
END
END
我测试的时候有把
RAISERROR(@return_status,16,1) WITH NOWAIT
放在判断前面,没有客户端提示信息,所有判定执行没有返回值 展开
展开全部
你如何判断没有返回值?的执行存储过程后,也没有输出
仅仅是在触发器执行了个存储过,既没有输出又不能用变量在外部接收
---------------------------------------------------------------
如果你要测试输出,先要保证操作的内容会准确到达
我建议你最好在exec前后都加上print或者select输出
仅仅是在触发器执行了个存储过,既没有输出又不能用变量在外部接收
---------------------------------------------------------------
如果你要测试输出,先要保证操作的内容会准确到达
我建议你最好在exec前后都加上print或者select输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主,你好!能把数据库相关表的DDL脚本以及存储过程代码发我一份吗?我做下测试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询