create trigger ti_FE_ORDERS_POS on FE_ORDERS_POS INSTEAD OF INSERT as DECLARE @NewId int; DECLARE @RowNumber int; DECLARE @CurrRow int; DECLARE @CurYear int; DECLARE @TableName varchar(128); SET @NewId=0; SET @CurrRow=1; select distinct year(table_year) t_y I nto #MyTmp from inserted; select * into #my_ins from inserted; declare @CurYearVC varchar(4); declare MyCurs cursor LOCAL for select t_y from #MyTmp; select @RowNumber=count(*) from #MyTmp; open MyCurs; WHILE @CurrRow<=@RowNumber BEGIN FETCH NEXT FROM MyCurs into @CurYear; set @CurYearVC=convert(varchar(4),@CurYear); set @TableName = ?FE_ORDERS_POS_?+ @CurYearVC; exec (?insert into ?+@TableName+? select * from #my_ins where year(table_year)=?+@CurYearVC); if @@Error<>0 begin return; end; SET @CurrRow=@CurrRow+1; END; deallocate MyCurs; GO