0
다음과 같이 트리거를 작성하여 UDF를 사용할 수 있는지 여부를 확인한 후 드롭하고 새 UDF를 작성한 다음 마지막으로 이름이 지정된 테이블에 사용하십시오 TableToClean.
그러나 내가 그것을하지만주는 오류를 실행하려고
스칼라 값 함수를 실행하기위한 트리거를 작성합니다. INSERT
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
working- 아닙니다.
왜 지구에 이러한 기능이 트리거에 의해 다시 작성해야합니까? –
또한이 테이블에'