使用 SELECT * 是否合理?
在 SQL 查询中选择所有列 (SELECT *) 长期以来一直被认为是不好的出于各种性能和安全原因进行实践。然而,也有一些例外情况,其使用是合理的。
其中一个场景是审计触发器。通过在审计触发器中使用 SELECT *,对底层表结构的任何更改都将触发错误,提醒开发人员相应地更新审计触发器或表。这有助于确保审计跟踪保持完整和准确。
SELECT 的另一个可接受的用例是在派生表和列表表达式中。例如,在嵌套表中包含 SELECT 可以有效检索必要的列,而不会对性能产生负面影响。但是,应该注意的是,这需要优化器正确识别所需的列,而在所有数据库中可能并非总是如此。
虽然 SELECT 也可以在视图中使用,但应谨慎执行,因为它可能会导致 SQL Server 中的元数据问题。具体来说,当基础表发生更改时缺乏自动元数据更新可能会导致结果不准确。因此,如果在视图中使用 SELECT ,则使用 sp_refreshview 手动更新元数据以防止潜在错误至关重要。
需要强调的是,SELECT 的使用仍应谨慎除非必要,否则在生产代码中考虑并避免。通过了解上述例外情况,开发人员可以就何时可以合理地使用 SELECT 做出明智的决定。
以上是什么时候可以在 SQL 查询中使用'SELECT *”?的详细内容。更多信息请关注PHP中文网其他相关文章!