虽然“SELECT *”在生产代码中经常不被鼓励,但确实在某些情况下它是合理的。
审核触发器
审核触发器可以从使用“SELECT ”中受益。当向基表添加其他列时,使用“SELECT ”可确保引发错误,从而防止审核触发器和表结构被忽略。
派生表
“SELECT ”在派生表和列表表达式中很有用。通过使用“”,所有列都被包含在内,确保如果将新列添加到基表中,它们将自动包含在派生表或 CTE 中。
SQL Server 优化
在 SQL Server 中,优化器会识别出查询中只需要特定列,即使在表表达式中使用“SELECT *”也是如此。因此,检索和丢弃不必要的列不会产生额外的开销。
视图(谨慎)
原则上,“SELECT ”可以接受视图,因为它是来自应该避免的视图的最终 SELECT。但是,建议在 SQL Server 中小心,因为当基础表发生更改时,视图的列元数据不会自动更新。使用“”可能会导致不正确的结果,除非使用 sp_refreshview 刷新视图。
以上是什么时候在 SQL 中使用'SELECT *”实际上是合理的?的详细内容。更多信息请关注PHP中文网其他相关文章!