更新存储过程无效

时间:2014-06-30 16:45:03

标签: sql-server stored-procedures

我有一个简单的存储过程,我正在我创建的表上执行。当我使用硬编码参数单独执行update语句时,它可以工作,但是程序在执行时不会更新。它返回“命令已成功完成”但没有行受到影响。我检查数据并且它也没有改变。

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
alter PROCEDURE uspUpdatePrices 
    @adjustment AS float, 
    @itemNumber AS VarChar
AS
BEGIN
    UPDATE [NIMEH].[dbo].[TestIV00108]
    SET UOMPRICE = @adjustment
    WHERE RTRIM(ITEMNMBR) = @itemNumber
END
GO

1 个答案:

答案 0 :(得分:0)

因为在where子句中比较是在两个字符串变量之间,所以确保参数中的值与行中的值完全相同。

如果开始或结束时出现空格,则将ltrim和rtrim都应用于列值。

同样指定varchar列的长度,因为sql server中的默认长度为30,这可能导致溢出。

注意 - 对表列进行操作使其无法搜索,因此索引无法正常使用,最好对参数值进行操作