--不太明白,是这个意思吗?
create trigger t_insert on MO_RECEIVE
for insert
as
if exists(select 1 from inserted where Content='0000')
insert into send(ServiceName)
select a.ServiceName
from Service_USER a join inserted b on a.Mobile=b.Mobile
where b.Content='0000'
go

解决方案 »

  1.   

    我查了一下,可能要用到触发器!
    select 出来是一组数据。我先写了一个触发器,但是有错:“scontent变量没用申明”CREATE trigger insert_qx_0000 on mo_receive for insert as
    if exists (select * from inserted a where upper(left(a.content,4)) = '0000'  and left(a.mobile,3) in ('134','135','136','137','138','139'))
    begin
       DECLARE @num int,@scontent varchar(140)
       set @num=0
       DECLARE service_Cursor CURSOR FOR
       select servicename from service_user  where mobile=(select mobile from inserted)
       OPEN service_Cursor
       FETCH NEXT FROM service_Cursor
       while @num<@@cursor_rows
       begin
          @scontent=@scontent+@num+service_Cursor
          FETCH NEXT FROM service_Cursor
      end
      insert into send_quick(mobile,content) select mobile,@content from *inserted
    GO我最终要得到@scontent里面是:“0(service_Cursor)1(service_Cursor).....”
      

  2.   

    CREATE trigger insert_qx_0000 on mo_receive for insert as
    if exists (select * from inserted a where upper(left(a.content,4)) = '0000'  and left(a.mobile,3) in ('134','135','136','137','138','139'))
    begin
       DECLARE @num int,@scontent varchar(140)
       set @num=0
       DECLARE service_Cursor CURSOR FOR
       select servicename from service_user  where mobile=(select mobile from inserted)
       OPEN service_Cursor
       FETCH NEXT FROM service_Cursor
       while @num<@@cursor_rows
       begin
          @scontent=@scontent+@num+service_Cursor             //@scontent附近有错
          FETCH NEXT FROM service_Cursor
          @num=@num+1                                         //@num附近有错
      end
      insert into send_quick(mobile,content) select mobile,@scontent from inserted
    GO
      

  3.   

    create trigger trig_insert_MO_RECEIVE on MO_RECEIVE
    for insert
    as
    set nocount on
    declare @count int
    declare @uname varchar(100)
    set @count=0
    if (select count(b.servicename) from inserted a,Service_USER b where a.mobile=b.mobile and a.content='0000')=3
    begin
    declare cur1 cursor for select b.servicename from  inserted a,Service_USER b where a.mobile=b.mobile and a.content='0000'
    open cur1
    fetch next from  cur1 into @uname 
    while @@fetch_status=0
    begin
    insert send(col1,col2) select @count,@uname
    set @count=@count+1
    fetch next from  cur1 into @uname 
    end
    close cur1
    deallocate cur1
    end
      

  4.   

    sdhdy(大江东去...) :  if (select count(b.servicename) from inserted a,Service_USER b where a.mobile=b.mobile and a.content='0000')=3
    你理解错了,我是根据select来判断有几条记录:@num<@@cursor_rows
    我又该了下我的,但“@scontent”不能迭加:CREATE trigger insert_QX_0000 on mo_receive for insert as
    if exists (select * from inserted a where upper(left(a.content,4)) = '0000'  and left(a.mobile,3) in ('134','135','136','137','138','139'))
    begin
       DECLARE @num int,@scontent varchar(140),@name varchar(50)
       set @num=0
       DECLARE service_Cursor CURSOR FOR
       select servicename from service_user  where mobile=(select mobile from inserted)
       OPEN service_Cursor
       FETCH NEXT FROM service_Cursor into @name 
       while @num<@@cursor_rows
       begin
         set  @scontent=CAST(@num as varchar(10) )+@name
         set @num=@num+1
         FETCH NEXT FROM service_Cursor into @name 
      end
       close service_Cursor
       deallocate service_Cursor
      insert into send_quick(mobile,content,feeusertype,feetype,feevalue,yd_lt,servicename,serviceid) select mobile,@scontent,0,'02','000010',0,'退定','0000' from inserted
    end帮忙解决!!!
      

  5.   

    @scontent=@scontent+CAST(@num as varchar(10) )+@name
    这句话,不能迭加!  输出时报:@scontent里是 null。
      

  6.   

    CREATE trigger insert_QX_0000 on mo_receive for insert as
    if exists (select * from inserted a where upper(left(a.content,4)) = '0000'  and left(a.mobile,3) in ('134','135','136','137','138','139'))
    begin
       DECLARE @num int,@scontent varchar(140),@name varchar(50)
       set @num=0
       DECLARE service_Cursor CURSOR FOR
       select servicename from service_user  where mobile=(select mobile from inserted)
       OPEN service_Cursor
       FETCH NEXT FROM service_Cursor into @name 
       while @num<@@cursor_rows
       begin
         set  @scontent=@scontent + CAST(@num as varchar(10) )+@name
         set @num=@num+1
         FETCH NEXT FROM service_Cursor into @name 
      end
       close service_Cursor
       deallocate service_Cursor
      insert into send_quick(mobile,content,feeusertype,feetype,feevalue,yd_lt,servicename,serviceid) select mobile,@scontent,0,'02','000010',0,'退定','0000' from inserted
    end