先贴下代码
use 图书馆管理系统
goif exists(select name from sysobjects
          where name = 'tr_图书信息_update' 
               and type = 'tr')
   drop trigger tr_图书信息_updatecreate trigger tr_图书信息_update
on 图书信息
for update
as
declare @msg varchar(100)
select @msg = str (@@rowcount) + 'Student update by this statement'
print @msg
return 
go运行的时候提示
消息 111,级别 15,状态 1,第 7 行
'CREATE TRIGGER' 必须是查询批次中的第一个语句。
想不通,大家帮忙下

解决方案 »

  1.   

    参考http://msdn.microsoft.com/zh-cn/library/ms189799.aspx触发器限制CREATE TRIGGER 必须是批处理中的第一条语句,并且只能应用于一个表。
      

  2.   

    GO命令指得是一个批处理的提交,不行。
    如果只单单加一个GO单词,GO之前不加任何语句。则可以:
    gocreate trigger tbaa
    on tb
    for update
    as
    declare @msg varchar(100)
    select @msg = str (@@rowcount) + 'Student update by this statement'
    print @msg
    return if exists(select name from sysobjects
              where name = 'tr_图书信息_update' 
                   and type = 'tr')
       drop trigger tr_图书信息_update
      

  3.   

    use 图书馆管理系统
    goif exists(select name from sysobjects
              where name = 'tr_图书信息_update' 
                   and type = 'tr')
       drop trigger tr_图书信息_update
    gocreate trigger tr_图书信息_update
    on 图书信息
    for update
    as
    declare @msg varchar(100)
    select @msg = str (@@rowcount) + 'Student update by this statement'
    print @msg
    return 
    go
      

  4.   

    drop trigger tr_图书信息_update;
    Go  --提交之前的批处理create trigger tr_图书信息_update
      

  5.   

    use [图书馆管理系统]
    go
    create trigger [tr_图书信息_update]
    on [图书信息]
    for update
    as
    beginif exists(select [name] from sysobjects
              where [name] = 'tr_图书信息_update' 
                   and type = 'tr')
       drop trigger [tr_图书信息_update]declare @msg varchar(100)
    select @msg = str (@@rowcount) + 'Student update by this statement'
    print @msg
    return end
    go
    end