如果期望的行为是让查询自动添加新列,可以选择 * 吗? [复制]

Posted

技术标签:

【中文标题】如果期望的行为是让查询自动添加新列,可以选择 * 吗? [复制]【英文标题】:Is it okay to SELECT * if desired behavior is for the query to automatically add new columns? [duplicate] 【发布时间】:2016-10-25 19:39:17 【问题描述】:

我使用一个视图来显示一个用于报告用户的非规范化宽表中的每一列。我直接使用视图而不是表的原因是视图具有控制用户访问的逻辑。

每次我向宽的、非规范化的表中添加一列时,我都希望它自动显示在视图中。 Stack Overflow 上的许多人都说 SELECT * 永远不行。在这种情况下可以吗,还是应该在每次向表中添加列时都更新视图?

【问题讨论】:

首先,NEVER 是一个非常有力的词。选择 * 是成本/收益的事情。关于您的视图,您确实应该在进行结构更改时更新视图 我同意,直到我发布这个问题后才找到那个。 【参考方案1】:

对于这个问题的答案,我非常感谢@User12861。在发布我的问题后,我在这里找到了这个答案:https://***.com/a/263320/5627550

“SQL Server 在添加时不会了解“新”列。这取决于您想要什么,这可能是好事也可能是坏事,但无论哪种方式,依赖它都可能不好。所以避免它似乎是个好主意。”

【讨论】:

以上是关于如果期望的行为是让查询自动添加新列,可以选择 * 吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

从表中的查询编辑器中添加新列

在配置单元中添加具有恒定值的新列

如何使用 jdbc pyspark python 在现有表中添加新列?

SQL - 如果 OLEQuery 中存在,则选择列

在火花数据框中使用 for 循环添加新列

BigQuery 将新列添加到子查询中的嵌套 STRUCT