首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用一个查询更新多个表

用一个查询更新多个表
EN

Stack Overflow用户
提问于 2014-07-15 18:40:55
回答 2查看 187关注 0票数 0

我有一个庞大的数据库,需要一个查询来更新数据库中的不同表。我认为这应该很容易,因为我要更改的列在每个表中都是相同的。到目前为止,这就是我所拥有的;

代码语言:javascript
复制
UPDATE  a_assets,
        client_notes,
        client_pending,
        client_task,
        country,
        document_log,
        favlists,
        favourites,
        g_address,
        g_climst,
        g_dialog,
        g_lang,
        g_prdmst,
        g_secure,
        j_alloc,
        logger,
        passhistory,
        portfolios,
        prod_metrics_tank,
        product_usage_lists,
        region,
        reasearch_logger,
        search_dataphile,
        search_esg,
        search_rpm,
        sql_workout,
        universe_source,
        user_jurisdications,
        user_languages,
        user_universe,
        work_group_mappings,
        work_groups,
        spt_docs 
set     a_assets.planner = ? ,
        client_notes.planner = ?,
        client_pending.planner = ?,
        client_task.planner = ?,
        country.planner = ?,
        document_log.planner=?,
        favlists.planner=?,
        favourites.planner=?,
        g_address.planner = ?,
        g_climst.planner =?,
        g_dialog.planner=?,
        g_lang.planner=?,
        g_prdmst.planner=?,
        j_alloc.planner=?,
        logger.planner=?,
        passhistory.planner=?,
        portfolios.planner=?,
        prod_metrics_tank.planner=?,
        product_usage_lists.planner=?,
        region.planner=?,
        reasearch_logger.planner=?,
        search_dataphile.planner=?,
        search_esg.planner=?,
        search_rpm.planner=?,
        sql_workout.planner=?,
        universe_source.planner=?,
        user_jurisdications.planner=?,
        user_languages.planner=?,
        user_universe.planner=?,
        work_group_mappings.planner=?,
        work_groups.planner=?,
        spt_docs.planner=?,
        g_secure.planner = ? 
where   a_assets.planner = ? ,
        client_notes.planner = ?,
        client_pending.planner = ?,
        client_task.planner = ?,
        country.planner = ?,
        document_log.planner=?,
        favlists.planner=?,
        favourites.planner=?,
        g_address.planner = ?,
        g_climst.planner =?,
        g_dialog.planner=?,
        g_lang.planner=?,
        g_prdmst.planner=?,
        g_secure.planner = ?,
        j_alloc.planner=?,
        logger.planner=?,
        passhistory.planner=?,
        portfolios.planner=?,
        prod_metrics_tank.planner=?,
        product_usage_lists.planner=?,
        region.planner=?,
        reasearch_logger.planner=?,
        search_dataphile.planner=?,
        search_esg.planner=?,
        search_rpm.planner=?,
        sql_workout.planner=?,
        universe_source.planner=?,
        user_jurisdications.planner=?,
        user_languages.planner=?,
        user_universe.planner=?,
        work_group_mappings.planner=?,
        work_groups.planner=?,
        spt_docs.planner=?

我不知道为什么这不能工作,因为所有的表都在更新他们的计划列。当它运行时,我得到一个:非法符号“令牌”。一些可能是合法的符号是:令牌列表。

查询中需要更改哪些内容才能使用相同的数据更新所有表。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-15 18:58:56

不能在单个update语句中更新多个表。[使用内部JOIN](https://stackoverflow.com/questions/15115759/update-multiple-tables-in-sql-server-using-inner-join)更新Server中的多个表

票数 0
EN

Stack Overflow用户

发布于 2014-07-15 19:52:06

为什么要更新一条语句中的所有表?假设您使用的是最新版本的LUW,您实际上可以通过转换表和cte进行更新,如下所示:

代码语言:javascript
复制
with t1 (n) as ( select count(1) 
                 from new table (
                     update a_assets 
                         set planer = ?
                     where planer = ?
                 )
               )
    , t2 (n) as ( ...

               )
    , ...

    , tn (n) as ( ...

               )
 select n from t1
 union all
 select n from t2
 ...
 select n from tn

但我怀疑这不是你想要的。

我建议您创建一个对表进行循环的过程,然后使用execute立即触发语句。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24765763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档