【发布时间】:2013-04-10 08:07:15
【问题描述】:
首先,让我先说我知道类似问题的 INSERT/SELECT 解决方案(请参阅here),但它不适用于我的场景。
我正在寻找一种不需要明确列出所有列的解决方案,因为这些列是提前未知的。此查询将在数十个独立数据库中的同一张表上运行。所有数据库都有一个公共列的子集,但每个都有自己独特的列,特定于该数据库。
那么,有没有一种方法可以复制整行,更改某些已知/恒定的列子集,然后在不明确列出所有列的情况下重新插入它?唯一的解决方案是使用从架构中收集的 DDL 信息动态构建查询吗?
【问题讨论】:
-
是的,唯一的方法是使用动态 sql。但是,如果它在您的控制范围内,我强烈建议您查看您的数据模型。听起来您的父子关系应该是非枢轴的。
-
我有点困惑。您何时知道需要更新哪些列?我同意@Dan 的观点,这将需要动态 SQL,我更同意数据模型听起来不是最理想的。
-
数据模型不是最优的,不在我的控制之下。我确实知道需要更新哪些列(它是一组 5 个左右的列,对表的所有实例都是通用的)。