McSdwarken Гость
|
Добавлено: Пт Мар 15 2002 20:00 Заголовок сообщения: Триггеры в SQL Server 7 |
|
|
Есть такая проблема - есть некоторый триггер (описан ниже) Так вот. Оператор set @qry = и так далее почемуто не всегда выполняется... Но стоит только убрать то что помечено звездочками (от *** до ***) все начинает нормально работать... Подобные триггеры с меньшим количеством переменных выполняются нормально... Даже не знаю что делать.. ПОМОГИТЕ!!! (если что пишите на max@vpz.ru)
CREATE TRIGGER tr_DH2964_i ON DH2964 FOR INSERT AS set nocount on declare @inneridid varchar(4000) declare @innerid varchar(4000) DECLARE MyCursor1 CURSOR FOR select LTRIM(RTRIM(IDDOC)) from inserted open mycursor1 fetch next from mycursor1 into @innerid set @inneridid='' while @@fetch_status = begin if @inneridid'' set @inneridid=@inneridid+',' set @inneridid=@inneridid+''''+LTRIM(RTRIM(@innerid))+'''' fetch next from mycursor1 into @innerid end close MyCursor1 deallocate MyCursor1 declare @innerqry varchar(4000) set @innerqry = ' declare c1 cursor for select RegDate,Counteragent_id,Fond_id,Cost_codes_ID,Notes,Currency_ID,SUMMA,.. from ( select Counteragent_id,Fond_id,Cost_codes_ID,Notes,Currency_ID,(substring(dat.. 4)) as RegDate,SUMMA,_1SJOURN.IDDOC as IDDOC,Table_Name from (select SP2965 Counteragent_id, SP2974 Currency_ID, NULL Fond_ID, SP22225 Cost_codes_id, SP1008 Notes, SP2968 SUMMA, IDDOC, ''DH2964'' as Table_Name from DH2964 union select SP16165 Counteragent_id, SP16166 Currency_ID, NULL Fond_ID, SP22224 Cost_codes_id, SP1008 Notes, SP16157 SUMMA, IDDOC, ''DH16171'' as Table_Name from DH16171 union select SP2979 Counteragent_id, SP2984 Currency_ID, NULL Fond_ID, SP22227 Cost_codes_id, SP1008 Notes, (-SP2981) SUMMA, IDDOC, ''DH2978'' as Table_Name from DH2978 union select SP16183 Counteragent_id, SP16188 Currency_ID, NULL Fond_ID, SP22226 Cost_codes_id, SP1008 Notes, (-SP16178) SUMMA, IDDOC , ''DH16192'' as Table_Name from DH16192) A inner join _1sjourn on A.iddoc = _1sjourn.iddoc where RTRIM(LTRIM(_1SJOURN.IDDOC)) in ('+@inneridid+') ) A' EXEC (@innerqry) declare @RegDate varchar(400) , @Counteragent_id varchar(400) , @Fond_id varchar(400) , @Cost_codes_ID varchar(400) , @Notes varchar(400) , @Currency_ID varchar(400) , @SUMMA varchar(400) , @IDDOC varchar(400) , @Table_Name varchar(400) , @qry varchar(4000); open c1; fetch next from c1 into @RegDate , @Counteragent_id , @Fond_id , @ ... |
|