存储过程中涉及多个表多个语句的问题
 我的表结构如下: 
 create   table   dt_articleclass 
 ( 
          acid   tinyint   primary   key   identity(1,1), 
          acname   varchar(50)   not   null 
 )   
 create   table   dt_article 
 ( 
          aid   int   primary   key   identity(1,1), 
          atitle   varchar(50)   not   null, 
          acontent   text   not   null, 
          aauthor   varchar(30)   not   null, 
          acid   tinyint   not   null   foreign   key   references   dt_articleclass(acid) 
 )   
 create   table   dt_articlepulish 
 ( 
          apid   int   primary   key   identity(1,1), 
          aptime   datetime   not   null, 
          apaccount   int   default   0, 
          uid   int   not   null   foreign   key   references   dt_user(uid),    
          aid   int   not   null   foreign   key   references   dt_article(aid) 
 )   
 要编写存储article的存储过程,因为涉及到三个表,不知该怎样编写存储过程,我编写的如下,但是不可以   
 create   proc   addarticle 
          @acid   int, 
          @title   varchar(50), 
          @content   text, 
          @author   varchar(50), 
          @addtime   datetime, 
          @userid   int 
 as 
          declare   @aid   int 
          insert   into   dt_article(atitle,acontent,aauthor,acid)   values(@title,@content,@author,@acid) 
          select   @aid=max(aid)   from   dt_article 
          insert   into   dt_articlepublish(aptime,uid,aid)   values(@addtime,@userid,@aid) 
 go   
 请问那里出了问题   
------解决方案--------------------create proc addarticle 
    @acid int, 
    @title varchar(50), 
    @content text, 
    @author varchar(50), 
    @addtime datetime, 
    @userid int 
 as 
 begin 
    declare @aid int 
    insert into dt_article(atitle,acontent,aauthor,acid) values(@title,@content,@author,@acid) 
    select @aid=max(aid) from dt_article 
    insert into dt_articlepublish(aptime,uid,aid) values(@addtime,@userid,@aid) 
 end 
 go 
------解决方案--------------------要先dt_articleclass中有对应的acid,才能向dt_article插入,再向dt_articlepublish中插入