Basé sur l'article posté à http://sqlserver2000.databases.aspfaq.com/how-do-i-handle-replace-within-an-ntext-column-in-sql-server.html
je devais écrire une recherche et remplacer par CHAR (146) `dans un champ de texte. Ci-dessus article pour fort nText et la même solution pour texte travaillé avec nText avec les changements suivants: - VARCHAR (32) de nVARCHAR (32) - utilisez @lenOldString = DATALENGTH (@oldString) au lieu de SET @lenOldString = DATALENGTH (@ oldString)/2.
DECLARE @TextPointer BINARY (16), @TextIndex INT, @oldString VARCHAR (32), @newString VARCHAR (32), @lenOldString INT, INT @currentDataID;
SET @oldString = '' '; SET @newString = '' '';
IF CHARINDEX (@oldString, @newString) BEGIN IMPRIMER 'Quitter pour éviter boucle infinie.'; FIN AUTRE BEGIN
--Need les champs pour NTEXT --set @lenOldString = DATALENGTH (@oldString)/2
--Utilisez ce pour les champs texte SET @lenOldString = DATALENGTH (@ oldString)
DECLARE CURSOR iRows LOCAL FORWARD_ONLY STATIC READ_ONLY POUR CHOISIR DataID DE dbo.tbData OÙ PATINDEX ('%' + @ oldString + '%', TextData) > 0;
OPEN irows;
FETCH SUIVANT FROM irows INTO @currentDataID; WHILE (@@ FETCH_STATUS = 0) BEGIN
SELECT @TextPointer = TEXTPTR (TextData), @TextIndex = PATINDEX ('%' + @ oldString + '%', TextData) à partir de DBO.tbData O WH DataID = @currentDataID;
SELECT @TextPointer, @TextIndex
WHILE (SELECT PATINDEX ('%' + @ oldString + '%', TextData) DE dbo.tbData OÙ DataID = @currentDataID ) BEGIN
SELECT @TextIndex = PATINDEX ('%' + @ oldString + '%', TextData) -1 à partir de 012 dbo.tbDataO WH DataID = @currentDataID;
UPDATETEXT dbo.tbData.TextData @TextPointer @TextIndex @lenOldString @newString; END FETCH SUIVANT FROM irows INTO @currentDataID; END
FERMER irows; DEALLOCATE irows;
FIN
quelles sont ces URL? est-ce qu'il pointe vers des ressources locales ou vers des sites étrangers? –