Ci-dessous le script que j’ai utilisé pour mettre à jour une colonne du type NTEXT.
Le but est de remplacer un texte dans cette colonne.
SET NOCOUNT ON
DECLARE @ptrval binary(16);
DECLARE @offset int;
DECLARE @Cle varchar;
DECLARE @TexteARemplacer varchar; --Texte à remplacer
DECLARE @LenTexteARemplacer int; --Longueur de la chaîne à remplacer
DECLARE @NouveauTexte varchar; --Nouveau texte
SET @Cle = 'cle';
SET @TexteARemplacer = 'Texte à remplacer';
SET @LenTexteARemplacer = LEN(@TexteARemplacer)
SET @NouveauTexte = 'Nouveau texte';
-- Récupérer le contenu de la colonne à mettre à jour
SELECT
@ptrval = TEXTPTR(TEST_COLONNE_LIBELLE)
FROM TEST_TABLE
WHERE
TEST_COLONNE_CLE = ' + @Cle + '
--Récupérer la première position du texte à remplacer dans le libellé
SELECT
@offset = PATINDEX('%'+@TexteARemplacer+'%', TEST_COLONNE_LIBELLE) - 1
FROM TEST_TABLE
WHERE
TEST_COLONNE_CLE = ' + @Cle + '
--Mettre à jour le libellé
WHILE @offset > -1
BEGIN
UPDATETEXT TEST_TABLE.COLONNE_LIBELLE @ptrval @offset @LenTexteARemplacer @NouveauTexte;
SELECT
@offset = PATINDEX('%'+@TexteARemplacer+'%', COLONNE_LIBELLE) - 1
FROM TABLE
WHERE
COLONNE_CLE = ' + @Cle +'
END
SET NOCOUNT OFF
Inscription à :
Publier les commentaires (Atom)
Aucun commentaire:
Enregistrer un commentaire