SET NOCOUNT ON; DECLARE @TextPointer BINARY(16), @TextIndex INT, @oldString NVARCHAR(200), @newString NVARCHAR(200), @lenOldString INT, @currentDataID INT; SET @oldString = N'/Portals/3/'; SET @newString = N'/dnn540/Portals/0/'; IF CHARINDEX(@oldString, @newString) <= 0 BEGIN SET @lenOldString = DATALENGTH(@oldString)/2; DECLARE irows CURSOR LOCAL FORWARD_ONLY STATIC READ_ONLY FOR SELECT ItemID FROM [dbo].[HTMLText] WHERE PATINDEX('%'+@oldString+'%', [Content] ) > 0; OPEN irows; FETCH NEXT FROM irows INTO @currentDataID; WHILE (@@FETCH_STATUS = 0) BEGIN SELECT @TextPointer = TEXTPTR([Content] ), @TextIndex = PATINDEX('%'+@oldString+'%', [Content] ) FROM [dbo].[HTMLText] WHERE ItemID = @currentDataID; WHILE ( SELECT PATINDEX('%'+@oldString+'%', [Content] ) FROM [dbo].[HTMLText] WHERE ItemID = @currentDataID ) > 0 BEGIN SELECT @TextIndex = PATINDEX('%'+@oldString+'%', [Content] )-1 FROM [dbo].[HTMLText] WHERE ItemID = @currentDataID; UPDATETEXT [dbo].[HTMLText].[Content] @TextPointer @TextIndex @lenOldString @newString; END FETCH NEXT FROM irows INTO @currentDataID; END CLOSE irows; DEALLOCATE irows; END go