改动一下
create  TRIGGER TrgDel ON xxxx
FOR insert
AS
    if exists (select * from sysobjects where  name='spt_tb' and type='TR')
 drop trigger spt_tb 
  end 
create  TRIGGER Trg_Zhb_Del ON spt_tb
FOR insert
AS
select * from xxxx

解决方案 »

  1.   

    create  TRIGGER TrgDel ON xxxx
    FOR insert
    AS
        if exists (select * from sysobjects where  name='spt_tb' and type='TR')
     drop trigger spt_tb 
      end 
    exec('
    create  TRIGGER Trg_Zhb_Del ON spt_tb
    FOR insert
    AS
    select * from xxxx')
      

  2.   

    可以,如:create  TRIGGER TrgDel ON A
    FOR insert
    AS
    begin
        if exists (select * from sysobjects where  name='Trg_Zhb_Del' and type='TR')
     drop trigger Trg_Zhb_Del exec('create  TRIGGER Trg_Zhb_Del ON A FOR insert AS update A set fa=5 ' )
    end
      

  3.   

    --多了一个end,改一下:create  TRIGGER TrgDel ON xxxx
    FOR insert
    AS
    if exists (select * from sysobjects where  name='spt_tb' and type='TR')
    drop trigger spt_tb 
    exec('
    create  TRIGGER Trg_Zhb_Del ON spt_tb
    FOR insert
    AS
    select * from xxxx')
      

  4.   

    触发器中不能select * from ...,樓主要改改。
      

  5.   

    --上面写多了一个end,改改:create  TRIGGER TrgDel ON xxxx
    FOR insert
    AS
    if exists (select * from sysobjects where  name='spt_tb' and type='TR')
    drop trigger spt_tb 
    exec('
    create  TRIGGER Trg_Zhb_Del ON spt_tb
    FOR insert
    AS
    select * from xxxx')
      

  6.   

    --触发器中当然可以用: select * ....--测试表
    create table xxxx(a int)
    create table spt_tb(a int)
    go--触发器
    create  TRIGGER TrgDel ON xxxx
    FOR insert
    AS
    if exists (select * from sysobjects where  name='spt_tb' and type='TR')
    drop trigger spt_tb 
    exec('
    create  TRIGGER Trg_Zhb_Del ON spt_tb
    FOR insert
    AS
    select * from xxxx')
    go--插入数据测试
    insert xxxx select 1--测试触发器中建的触器是否生效
    insert spt_tb select 1
    go--删除测试
    drop table xxxx,spt_tb/*--测试结果a           
    ----------- 
    1(所影响的行数为 1 行)--*/
      

  7.   

    不可以跨数据库操作?如何,在另外的数据库中创建 
    EXEC (‘  create  TRIGGER Trg_Zhb_Del ON MASTER..spt_tb
    FOR insert
    ’)
      

  8.   

    当然不可以跨数据库操作.因为只能在当前数据库中的表上创建触发器。这是SQL的限制.