Почему использование параметров Sql не поддерживается? - PullRequest
0 голосов
/ 01 мая 2018

Если я использую параметры для установки значения, чтобы обновить поля, ничего не было обновлено, но если я назначил значение полю непосредственно, все работает нормально. Вот мой 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

1 Ответ

0 голосов
/ 01 мая 2018

@ItemName NVARCHAR = NULL будет переводиться в @ItemName NVARCHAR(1) = NULL, что обрезает строку. Вам нужно установить NVARCHAR размер.

Так что используйте:

@ItemName   NVARCHAR(100) = NULL

вместо:

@ItemName   NVARCHAR= NULL

SqlFiddle доступен здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...