Мы получаем данные из источника excel и сохраняем таблицу Temp и обновляем целевую таблицу с помощью таблицы temp с сохраненной процедурой. Я столкнулся с проблемами с столбцом «comments» в целевой таблице, где, если появился новый комментарий то он должен быть добавлен к существующему комментарию. Загадка здесь столбец таблицы назначения представляет собой комбинацию входных параметров и некоторые поля вместе с comments.Eg:Таблица обновлений с использованием хранимой процедуры
[Target.Comments] = '[Manager ' + @Getdateparameter +'' + uploaded by + '] ' +Temp.comments + '' + Target.comments.
Когда новый рекорд приходит сегодня,
Comment = [Manager1 May_9_2013 uploader1] robert is in canada
Если запустить снова в другой день и нет никакого обновления (он должен проверить с существующими комментариями) в комментариях затем
Comment = [Manager1 May_9_2013 uploader1] robert is in canada
Если есть обновление в комментариях по маю 15-го, то он должен быть
Comment = [Manager1 May_15_2013 uploader1] robert is moved away from canada and now he is in US.[Manager1 May_9_2013 uploader1] robert is in canada
Как это достичь? Спасибо.
Я написал инструкцию по обновлению внутри курсора, а инструкция обновления: Обновить целевой tar set tar.comments = case, когда temp.comments не является нулевым, тогда «[Manager» + @Getdateparameter + '' + uploaded by + '] '+ temp.comments +' '+ tar.comments else tar.comments end from target_atble внутренний tar join temmp_table temp на tar.PK = temp.PK. Это отлично работает до тех пор, пока тот же комментарий не поступит в другой день, тогда у нас есть дубликаты комментариев в этой области. –
скажите, пожалуйста, что 'uploaded by' не является именем столбца? как это работает даже с пространством? вы не можете добавить 'WHERE YourOldComment NOT LIKE '%' + YourNewComent + '%'' –
И, пожалуйста, никогда не записывайте обновления или вставки или удаления в курсор! Очень плохая привычка, которую нужно сломать. Вам нужно думать, что в наборах не обрабатывается одна запись за раз. – HLGEM