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