Member表 ID Tags假设ID为1的这个人的Tags是(美国,汉堡,薯条,美国大兵),现在增加一个tag是“美国大兵搞基”,这个存储过程要怎么写CREATE PROC Member_UpdateTags
(
@ID INT,
@Tags NVARCHAR(20),
)
BEGIN
//根据传进来的这个ID和tags来增加这个人的tags,
END

解决方案 »

  1.   

    CREATE PROC Member_UpdateTags
    (
    @ID INT,
    @Tags NVARCHAR(20)
    )
    ASBEGIN
    if exists(select 1 from tb WHERE id=@ID )
    UPDATE dbo.tb SET Tags=Tags+','+@Tags WHERE id=@ID
    ELSE 
    INSERT INTO tb VALUES(@ID,@Tags)
    END
      

  2.   

    REATE PROC Member_UpdateTags
    (
    @ID INT,
    @Tags NVARCHAR(20)
    )
    ASBEGIN
    if exists(select 1 from tb WHERE id=@ID )
    begin
    if exists(select 1 from tb WHERE charindex(','+@Tags+',',','+Tags+',')>0)
    --存在
    returnCREATE PROC Member_UpdateTags
    (
    @ID INT,
    @Tags NVARCHAR(20)
    )
    ASBEGIN
    if exists(select 1 from tb WHERE id=@ID )
    begin
    if exists(select 1 from tb WHERE charindex(','+@Tags+',',','+Tags+',')>0)
    --存在
    return
    else
    UPDATE dbo.tb SET Tags=Tags+','+@Tags WHERE id=@ID
    end
    ELSE 
    INSERT INTO tb VALUES(@ID,@Tags)
    END
    else
    UPDATE dbo.tb SET Tags=Tags+','+@Tags WHERE id=@ID
    end
    ELSE 
    INSERT INTO tb VALUES(@ID,@Tags)
    END