sql exception : L'instruction a été arrêtée
Je suis l'exécution de cette instruction SQL
exec sp_executesql
N'UPDATE dbo.PricingProfileRuleSetCondition
SET RuleGroup = @p0,
JoinClause = @p1,
ColumnName = @p2,
Operator = @p3,
Value = @p4,
RuleSetId = @p5
WHERE Id = @p6',
N' @p0 int,
@p1 nvarchar(4000),
@p2 nvarchar(4000),
@p3 nvarchar(4000),
@p4 nvarchar(4000),
@p5 bigint,
@p6 bigint'
,
@p0=0,
@p1=N'And',
@p2=N'DMS.Finance.Entities.PartnerAccountTransactionAmountType.EnglishName',
@p3=N'eq',
@p4=N'dsaf',
@p5=4,
@p6=6
et je suis de
Msg 8152, Level 16, State 2, Line 1
String or binary data would be truncated.
The statement has been terminated.
de l'aide,veuillez
Vous devez vous connecter pour publier un commentaire.
Une chaîne de caractères que vous voulez insérer est plus long que le max nr de charachters. E. g. comme une chaîne de caractères avec 4001 charachters dans un varchar(4000) type de données.
Les définitions de colonnes pour la dbo.PricingProfileRuleSetCondition sont trop courts pour les données que vous saisissez.
Ainsi, l'une des valeurs de @p1 @p2, @p3, @p4 est trop long pour la colonne correspondante, en dépit de votre déclaration des paramètres de type nvarchar(4000). Personnellement, je serais match paramètre type de données et la longueur de colonnes.
Pensé au hasard: si vous avez déclaré colonnes (n)varchar sans longueur, la longueur par défaut est de 1.
Dire que, pourquoi utiliser du SQL dynamique à tous dans ce cas? Il serait simple de paramétrer la mise à jour.
L'une de vos colonnes de type de données n'est pas assez grand pour la chaîne de l'affectation. Vous avez besoin d'augmenter le volume de données max de longueur ou de tronquer la chaîne.
C'est probablement ColumnName, qui vous essayez d'affecter une chaîne de caractères de longueur 69.
Juste au cas où, si vous avez besoin en toute sécurité de tronquer les données jusqu'à une longueur de 4000, regarder dans la "gauche" ou "droite" des fonctions.