【发布时间】:2016-08-24 04:26:52
【问题描述】:
我有一个存储过程spResultFlagUpd,它有两个参数@p_Code_Sazman 和@p_Code_Marhale。此存储过程必须使用 TRUE 和 FALSE 值更新列
ALTER PROCEDURE [dbo].[spResultFlagUpd]
@p_Code_Sazman Nchar(6) = Null,
@p_Code_Marhale Nchar(6)=Null
AS
IF EXISTS(SELECT * FROM tblResult
WHERE Code_Marhale = @p_Code_Marhale
AND Code_Sazman = @p_Code_Sazman
AND Confirmed = 1 AND SendFile = 1 AND MakeFileFlag = 1)
BEGIN
UPDATE tblResult
SET MakeFileFlag = 0
WHERE Code_Marhale = @p_Code_Marhale
AND Code_Sazman = @p_Code_Sazman
END
当我跑步时
exec spResultFlagUpd @p_Code_Marhale='000060', @p_Code_Sazman='000021'
它不会更新表格。
但是当我将更新代码作为 SQL 查询运行时,它可以正常工作。
当我写代码时就像
update tblResult
set MakeFileFlag=0
where Code_Marhale=@p_Code_Marhale and Code_Sazman=@p_Code_Sazman
正常工作
【问题讨论】:
-
检查此查询是否返回任何结果
SELECT * FROM tblResult WHERE Code_Marhale = '000060' AND Code_Sazman = '000021' AND Confirmed = 1 AND SendFile = 1 AND MakeFileFlag = 1 -
是的,它返回 1 个唯一记录
-
即使我右键单击 sp 并从这个窗口执行 sp 值,它也可以正常工作@Prdp
-
添加
tblResult表的样本数据。我们可以检查它的工作与否 -
如何添加数据?我在问题中添加了表格图像的 degsin 模式
标签: sql sql-server-2008 stored-procedures execcommand