コメントを挿入するときに、誓いの言葉であれば、文中の母音を置き換えたいと思います。 私は誓いの言葉でテーブルを持っています。 (私は今、テーブルにのみ2つの単語を持っているが、より後でそこに追加されます)SQLの置換機能が機能しない
私はこのようなテーブルBADWORDSている:私は挿入すると
Word
----------
Luke
father
----------
今すぐ「ルークを、私はあなたの父です」私はそれを返そうとしている 'Lk-、私はあなたのf番目のr'です
これは私が持っているものです。しかし、それは何かを置き換えるものではありません。
CREATE TRIGGER replace_badWords ON comment
INSTEAD OF INSERT
AS
DECLARE @word AS NVARCHAR(50);
DECLARE @wordCursor AS CURSOR;
DECLARE @text VARCHAR(500) = (SELECT I.messageText FROM inserted I)
SET @wordCursor = CURSOR FOR
SELECT word FROM Badwords;
OPEN @wordCursor;
FETCH NEXT FROM @wordCursor INTO @word;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @text=REPLACE(@text,@word,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@word,'A','-'),'E','-'),'I','-'),'O','-'),'U','-'))
FETCH NEXT FROM @wordCursor INTO @word;
END;
INSERT INTO Comment(messageText) values(@text)
CLOSE @wordCursor;
DEALLOCATE @wordCursor;
出力:ルーク、私は、出力は次のようになりたいあなたの父
午前:Lk-、私はあなたの第f-Rだ
は、この問題を解決する方法を誰でも知っています??
はあなたがデータベース内の恒久*この*を行うことを望みますか?新しい悪い言葉が6ヶ月の時間に追加されるとどうなりますか?すべてのデータを再処理する必要があります。感性が1年で変わり、「父親」が受け入れられるとどうなるでしょうか?あなたはあなたの堕落したフォームを元に戻す必要があります(実際に誰かが実際に入力してf-th-rを入力し、意味していた場合、元のものを実際に変更します)。私は強く、あなたが提示した実際のテキストを保存し、プレゼンテーションの時点でこの置換を実行することを強くお勧めします。*現行の "悪い言葉"のセットを使用してください。 –
(トリガーは、 0,1または**複数の**行を含むことができます) –
また、文字列から単語を解析していません。 "clam"がいたずらであるとき、 "Rodgerの宣言は心のこもった"とはどういうことでしょうか?重複する単語をどのように扱いたいのですか? 「ラグ」と「ベルーガ」の両方が攻撃的であれば? – HABO