将更新应用于动态sql

将更新应用于动态sql,sql,sql-server,sql-update,Sql,Sql Server,Sql Update,我有一个动态sql语句: TRUNCATE TABLE ' + @FirstTableSchemaName + '.' + @FirstTableName + ' INSERT INTO ' + @FirstTableSchemaName + '.' + @FirstTableName + ' ( action, ' + @ListColumn + ' ) SELECT action, ' + @ListColumn + ' FRO

我有一个动态sql语句:

  TRUNCATE TABLE ' + @FirstTableSchemaName + '.' + @FirstTableName + '
   INSERT INTO  ' + @FirstTableSchemaName + '.' + @FirstTableName + '
   ( 
    action,
    ' + @ListColumn + '
   )
   SELECT action, 
    ' + @ListColumn + '
   FROM
   (
    MERGE INTO ' + @SecondTableSchemaName + '.' + @FirstTableName + ' AS TARGET 

我需要在select操作语句之前对第一个表应用更新。我的更新如下所示:

Update FirsttableName 
set ColumnName = COALESCE(b.column, a.column)
from FirsttableName a
LEFT JOIN TableName b ON a.ColumnName = b.ColumnName 

有人能举例说明这应该是什么样子吗?

这两个表的列是否相同?如果没有,您如何知道哪些列映射到哪些列?您将提供映射数据集吗?为什么需要截断一个表,然后插入其中并立即更新它?为什么不先插入正确的数据?修复您的insert语句。@seanRange之所以有截断,是因为它是一个自动过程,每次作业运行时都会从表中删除数据。我认为您截断它是为了删除以前的数据。但是为什么您需要插入它,然后立即更新它呢?只需插入正确的数据。我们确实需要更多的细节才能回答这个问题。有关您应该发布的内容,请参阅。这两个表的列是否相同?如果没有,您如何知道哪些列映射到哪些列?您将提供映射数据集吗?为什么需要截断一个表,然后插入其中并立即更新它?为什么不先插入正确的数据?修复您的insert语句。@seanRange之所以有截断,是因为它是一个自动过程,每次作业运行时都会从表中删除数据。我认为您截断它是为了删除以前的数据。但是为什么您需要插入它,然后立即更新它呢?只需插入正确的数据。我们确实需要更多的细节才能回答这个问题。有关您应该发布的内容的一些想法,请参阅。