create proc P_Test
@title varchar(10),
@content varchar(10),
@tag varchar(10)
as 
   insert article表 select @title ,@content
   

解决方案 »

  1.   

    是不是需要把'工资 鸡翅 高兴' 
    拆分成三个tag?
      

  2.   

    对。就是要把工资 鸡翅 高兴  拆成3个tag
      

  3.   

    复杂度不低,
    create proc P_Test 
    @title varchar(10), 
    @content varchar(10), 
    @tag varchar(10) 
    as declare @sql varchar(3000)
    declare @aId int--拆分tag到临时表
    create table #t(tag varchar(30))
    set @sql=replace(@tag,' ',''' union all select ''')
    exec ('insert #t select '''+@sql+'''')--已有tag增加num
    update tag set
       num=tag.num+1
    from tag,#t t
    where tag.tag=t.tag--增加新tag
    insert tag(tag,num)
    select tag,1 as num
    from #t t left join tag
    on tag.tag=t.tag
    where tag.id is null--article
    insert article(title ,content) values( @title ,@content) 
    set @aId=SCOPE_IDENTITY( )--tag-article
    insert tag-article(Tagid,Articleid)
    select tag.id,@aid
    from #t t,tag 
    where t.tag=tag.taggo