如果我使用参数设置值以更新字段,则没有更新任何内容,但如果我直接将值分配给字段,一切正常。 这是我的sql脚本,其参数不起作用:
DECLARE @ItemValue NUMERIC(2,1) = 0.0,
@ItemName NVARCHAR = NULL,
@RuleID INT,
@IsValid BIT
SET @ItemValue =9
SET @ItemName = 'chbWorkingTimePerDay'
SET @RuleID = 1
SET @IsValid = 1
UPDATE hrms.RuleValue
SET ItemValue = @ItemValue,
IsValid = @IsValid
FROM hrms.RuleItem RI
JOIN hrms.RuleValue RV
ON RI.RuleItemID = RV.RuleItemID
WHERE RI.ItemName = @ItemName
AND RV.RuleID = @RuleID
这是我的sql脚本,没有适用的参数:
UPDATE hrms.RuleValue
SET ItemValue = 8.0,
IsValid = 1
FROM hrms.RuleItem RI
JOIN hrms.RuleValue RV
ON RI.RuleItemID = RV.RuleItemID
WHERE RI.ItemName = 'chbWorkingTimePerDay'
AND RV.RuleID = 1
答案 0 :(得分:1)
@ItemName NVARCHAR = NULL
将转换为@ItemName NVARCHAR(1) = NULL
,这会切断字符串。您需要设置NVARCHAR
尺寸。
所以使用:
@ItemName NVARCHAR(100) = NULL
而不是:
@ItemName NVARCHAR= NULL
SqlFiddle可用here。