Il est très difficile de fournir une assistance utile sans plus d'informations sur le schéma de la table que vous souhaitez mettre à jour et sur certains ensembles de données avant et après. J'ai supposé que la colonne contient un ensemble de paires nom/valeur auxquelles vous voulez ajouter une nouvelle paire pour une ou plusieurs lignes connues, et que l'ordre des paires n'est pas important (c.-à-d. Acceptable toujours ajouter de nouvelles valeurs à la fin de la liste).
Si tout cela est correct, les éléments suivants peuvent vous aider. Deux lignes de données de test sont créées: la première ligne est ensuite mise à jour avec un nouveau nom (couleur) et une nouvelle valeur (500).
DECLARE @t TABLE
(id INT
,attributes VARCHAR(MAX)
)
INSERT @t
SELECT 1,',code,removeformat,undo,redo,cut,copy,|1|1,2,3,|0|500,400|1078,|False|'
UNION SELECT 2,',code,removeformat,undo,redo,cut,copy,|1|1,2,3,|0|500,400|1078,|False|'
UPDATE @t
SET attributes = LEFT(attributes,CHARINDEX('|',attributes,0) - 1) + 'color,' + SUBSTRING(attributes,CHARINDEX('|',attributes,0),999999) + '500|'
WHERE id = 1
SELECT *
FROM @t
pas une base de données normalisée; n'importe quelle raison pourquoi? –
Un peu plus d'informations s'il vous plaît, et un avant-après-exemple serait bien. – Bobby
Voulez-vous toujours ajouter 'couleur' comme dernière entrée de texte avant les premières entrées délimitées par des barres? –