I created a trigger as below to check whether the UDF are available or not if are then DROP them and create new UDF, then at last Use them on a table named TableToClean.
But it's not working
USE [DB2]
GO
/****** Object: Trigger [dbo].[cleanData] Script Date: 7/22/2014 3:33:19 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[cleanData]
ON [dbo].[TableToClean] FOR INSERT
AS
BEGIN
SET NOCOUNT ON
IF OBJECT_ID('[dbo].[cleanStyleData]') IS NOT NULL
DROP FUNCTION cleanStyleData
GO
CREATE FUNCTION [dbo].[cleanStyleData] ( @StyleText VARCHAR(MAX) )
RETURNS VARCHAR(MAX)
AS BEGIN
DECLARE @Start INT
DECLARE @End INT
DECLARE @Length INT
SET @Start = CHARINDEX('<style>', @StyleText)
SET @End = CHARINDEX('</style>', @StyleText, @Start)
SET @Length = ( @End - @Start ) + 1
WHILE @Start > 0 AND @End > 0 AND @Length > 0
BEGIN
SET @StyleText = STUFF(@StyleText, @Start, @Length, '')
SET @Start = CHARINDEX('<style>', @StyleText)
SET @End = CHARINDEX('</style>', @StyleText, @Start)
SET @Length = ( @End - @Start ) + 1
END
RETURN REPLACE(REPLACE( REPLACE(REPLACE(LTRIM(RTRIM(@StyleText)), '$', ''), '£', ''), '€', ''), '↵', '')
END
IF OBJECT_ID('[dbo].[cleanScriptData]') IS NOT NULL
DROP FUNCTION cleanScriptData
GO
CREATE FUNCTION [dbo].[cleanScriptData] ( @ScriptText VARCHAR(MAX) )
RETURNS VARCHAR(MAX)
AS BEGIN
DECLARE @Start INT
DECLARE @End INT
DECLARE @Length INT
SET @Start = CHARINDEX('<script>', @ScriptText)
SET @End = CHARINDEX('</script>', @ScriptText, @Start)
SET @Length = ( @End - @Start ) + 1
WHILE @Start > 0 AND @End > 0 AND @Length > 0
BEGIN
SET @ScriptText = STUFF(@ScriptText, @Start, @Length, '')
SET @Start = CHARINDEX('<script>', @ScriptText)
SET @End = CHARINDEX('</script>', @ScriptText, @Start)
SET @Length = ( @End - @Start ) + 1
END
RETURN REPLACE(REPLACE( REPLACE(LTRIM(RTRIM(@ScriptText)), '=', ''), '\', ''), '||', '')
END
UPDATE [DB2].[dbo].[TableToClean]
SET [DA_ArticleDetails] = [dbo].[cleanStyleData] ([DA_ArticleDetails])
UPDATE [DB2].[dbo].[TableToClean]
SET [DA_ArticleDetails] = [dbo].[cleanScriptData] ([DA_ArticleDetails])
END
I tried to execute it but giving errors.