小弟刚自己把命令执行了下,发现老师弹出错误,我现在就把我自己的发各位看下,麻烦看下错误在哪:
以下是我写的:
create table  DocTrans(CoCode int,AgCode varchar(10),CoHKCI  varchar(10),CoHKBR varchar(10),CoHKCHOP  varchar(10))
create table  DocStatus(CoCode int,CoHKCI varchar(10),CoHKBR varchar(10),CoHKCHOP varchar(10))create trigger triggername
on DocTrans
for update
as 
   update a
   set a.CoHKCI = case when b.CoHKCI = '1' then b.AgCode else a.a end, 
       a.CoHKBR = case when b.CoHKBR = '1' then b.AgCode else a.b end,
       a.CoHKCHOP = case when b.CoHKCHOP = '1' then b.AgCode else a.c end
   from DocStatus a
   left join inserted b on a.CoCode = b.CoCode
go
select * from DocTrans
select * from DocStatus
update DocTrans
set CoHKCI = '1' where CoCode = '1'
update DocTrans
set CoHKBR = '1' where CoCode = '2'到此运行我也不知道错误在哪?我下面把我数据库发各位看下:
/*****接收的相关文件资料*******/
create table DocTrans
(
TransNo char(20)   接收单号(R+yymmdd+001)R990315001
CoCode char(10),  公司编号
RecDate datetime,            交易时间
AgCode char(10),             代办人编号
StCode char(10),             收件人编号
CoHKCI char(2),   公司注册证            (预设为'0' 表示没有收此文件)
CoHKBR char(2),   公司商业登记证         (点击为'1' 表示收回此文件)
CoHKCHOP char(2),
)
/*****接收明细表*******/
create table DocRecHeader
(
RecNo char(20) primary key,  交易号
RecDate datetime,            交易时间
AgCode char(10),             代办人编号
StCode char(10),             收件人编号
)麻烦刚才的老师再看下,我问题在哪

解决方案 »

  1.   

    update DocStatus  不是a
      

  2.   


    create   trigger   triggername 
    on   DocTrans 
    for   update 
    as   
          update   a 
          set a.CoHKCI=case when b.CoHKCI= '1' then b.AgCode 
                            else   a.CoHKCI end,   
              a.CoHKBR=case when b.CoHKBR= '1' then b.AgCode 
                            else   a.CoHKBR end, 
              a.CoHKCHOP=case when b.CoHKCHOP= '1' then b.AgCode 
                            else   a.CoHKCHOP end 
          from   DocStatus   a 
          left  join  inserted b  on  a.CoCode=b.CoCode 
    go 
      

  3.   


    --else 后面没修改过来!
      

  4.   


    --现在可以编译通过create table DocTrans(CoCode int,AgCode varchar(10),CoHKCI varchar(10),CoHKBR  varchar(10),CoHKCHOP varchar(10)) 
    create table DocStatus(CoCode int,CoHKCI varchar(10),CoHKBR varchar(10),CoHKCHOP varchar(10)) 
    go
    create trigger triggername 
    on   DocTrans 
    for   update 
    as   
         update a 
         set  a.CoHKCI   =   case   when   b.CoHKCI   =   '1'   then   b.AgCode   else   a.a   end,   
              a.CoHKBR   =   case   when   b.CoHKBR   =   '1'   then   b.AgCode   else   a.b   end, 
              a.CoHKCHOP   =   case   when   b.CoHKCHOP   =   '1'   then   b.AgCode   else   a.c   end 
          from  DocStatus a 
          left join inserted  b on a.CoCode= b.CoCode 
    go 
    select   *   from   DocTrans 
    select   *   from   DocStatus 
    update   DocTrans 
    set   CoHKCI   =   '1'   where   CoCode   =   '1' 
    update   DocTrans 
    set   CoHKBR   =   '1'   where   CoCode   =   '2' --到此运行我也不知道错误在哪?我下面把我数据库发各位看下: 
    /*****接收的相关文件资料*******/ 
    create   table   DocTrans 

    TransNo char(20),     --接收单号(R+yymmdd+001)R990315001 
    CoCode char(10),     --公司编号 
    RecDate datetime,                         --交易时间 
    AgCode   char(10),                           --代办人编号 
    StCode   char(10),                           --收件人编号 
    CoHKCI   char(2),       --公司注册证                         (预设为'0'   表示没有收此文件) 
    CoHKBR   char(2),       --公司商业登记证                   (点击为'1'   表示收回此文件) 
    CoHKCHOP   char(2), 

    /*****接收明细表*******/ 
    create   table   DocRecHeader 

    RecNo   char(20)   primary   key,     --交易号 
    RecDate   datetime,                         --交易时间 
    AgCode   char(10),                          -- 代办人编号 
    StCode   char(10),                          -- 收件人编号 

      

  5.   

    create   table     DocTrans(CoCode   int,AgCode   varchar(10),CoHKCI     varchar(10),CoHKBR   varchar(10),CoHKCHOP     varchar(10)) 
    create   table     DocStatus(CoCode   int,CoHKCI   varchar(10),CoHKBR   varchar(10),CoHKCHOP   varchar(10)) 
    go  ---这里必须加
    create   trigger   triggername 
    on   DocTrans 
    for   update 
    as   
          update   a 
          set   a.CoHKCI   =   case   when   b.CoHKCI   =   '1'   then   b.AgCode   else   a.a   end,   
                  a.CoHKBR   =   case   when   b.CoHKBR   =   '1'   then   b.AgCode   else   a.b   end, 
                  a.CoHKCHOP   =   case   when   b.CoHKCHOP   =   '1'   then   b.AgCode   else   a.c   end 
          from   DocStatus   a 
          left   join   inserted   b   on   a.CoCode   =   b.CoCode 
    go 
    select   *   from   DocTrans 
    select   *   from   DocStatus 
    update   DocTrans 
    set   CoHKCI   =   '1'   where   CoCode   =   '1' 
    update   DocTrans 
    set   CoHKBR   =   '1'   where   CoCode   =   '2'