雖然「SELECT *」在生產代碼中經常不被鼓勵,但確實在某些情況下它是合理的。
審核觸發器
審核觸發器可以從使用「SELECT 」中受益。當向基底表新增其他欄位時,使用「SELECT 」可確保引發錯誤,從而防止審核觸發器和表結構被忽略。
派生表
「SELECT 」在衍生表和列表表達式中很有用。透過使用“”,所有列都被包含在內,確保如果將新列新增到基底表中,它們將自動包含在衍生表或 CTE 中。
SQL Server 最佳化
在SQL Server 中,最佳化器會辨識出查詢中只需要特定列,即使在表格運算式中使用「SELECT *」也是如此。因此,檢索和丟棄不必要的列不會產生額外的開銷。
視圖(謹慎)
原則上,「SELECT 」可以接受視圖,因為它是來自應該避免的視圖的最終 SELECT。但是,建議在 SQL Server 中小心,因為當基礎表發生變更時,檢視的列元資料不會自動更新。使用“”可能會導致不正確的結果,除非使用 sp_refreshview 來刷新視圖。
以上是什麼時候在 SQL 中使用'SELECT *”實際上是合理的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!