id   word  replacewordUSE [test1]
GO
/****** 对象:  Trigger [dbo].[tri_test]    脚本日期: 03/22/2011 12:26:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[tri_test]
   ON [dbo].[T_Test1]
   for INSERT
AS 
BEGIN
SET NOCOUNT ON;
    declare @word varchar(100)
    declare @id int 
    select @id = id from inserted
    select @word = [word] from inserted 
    declare @wordreplace varchar(100)
    set @wordreplace = replace(@word,'(图)','')   
    update T_Test1 set [word]=@wordreplace where id= @id
print 'asdsadsad'
这个只能实现固定的替换

解决方案 »

  1.   


    stuff(@word,charindex('(',@word),charindex(')',@word) - charindex('(',@word) + 1,'')
      

  2.   

    2楼,这句话写在哪?stuff(@word,charindex('(',@word),charindex(')',@word) - charindex('(',@word) + 1,'')
      

  3.   

    CREATE TABLE T_Test1
    (
    id INT,
    [word] NVARCHAR(100)
    )
    go
    --SQL:
    CREATE TRIGGER [dbo].[tri_test] ON [dbo].[T_Test1]
        FOR INSERT
    AS
    BEGIN
        SET NOCOUNT ON
        
        UPDATE A
        SET A.[word] = REPLACE(A.[word], '(图)', '')
        FROM T_Test1 A, INSERTED B
        WHERE A.id = B.id
    END
    GO
    --test
    INSERT T_Test1
    SELECT 1, '1(图)2' UNION ALL SELECT 2, '3(图)4'
    go
    SELECT * FROM T_Test1
    /*
    1 12
    2 34
    */