SQL Server - 在存储过程中选择*vs选择列

use*_*334 3 sql t-sql database sql-server stored-procedures

在使用Select ColumnName的临时查询中更好,但在保存在计划指南中后,它是否在存储过程中重要?

Dar*_*ren 5

始终明确说明列,即使在存储过程中也是如此.SELECT *被认为是不好的做法.

例如,您不知道将返回的列顺序,某些应用程序可能依赖于特定的列顺序.

即应用程序代码可能类似于:

Id = Column[0]; // bad design
Run Code Online (Sandbox Code Playgroud)

如果您使用过的SELECT *ID可能不再是第一列并导致应用程序崩溃.此外,如果修改了数据库并添加了另外5个字段,则返回可能不相关的其他字段.