我们从excel源获取数据并保留在Temp表中并使用带有存储过程的临时表来更新目标表。我遇到目标表中“注释”列的问题,如果有新注释,那么它应该预先添加到现有评论。这里的谜语是目标表列,是输入参数和一些字段以及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
如果5月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
如何实现这一目标? 感谢。
答案 0 :(得分:1)
您没有为您实际编写代码提供任何真实信息(您是在循环,插入单个语句等),但尝试这样的事情:
UPDATE y
SET YourComment=t.NewValue+ISNULL('; '+y.YourComment,'')
FROM YourTable y
INNER JOIN YourTempTable t On y.PK=t.PK
WHERE t.NewValue IS NOT NULL
我将其编码为在评论之间放置“;”,但如果没有必要,您可以删除。将“t.NewValue”替换为形成新注释的字符串连接。
这实际上是一个架构问题。您应该创建一个“注释”表,将不同的值拆分为各自的列,每个注释都有一行。此时,您始终插入并且不进行更新或连接。您可以使用视图或应用程序处理将它们组合起来以供用户演示。