我使用的是MS SQL Server 2005.对于SQL引擎而言,

SELECT * FROM MyTable;

SELECT ColA, ColB, ColC FROM MyTable;

When ColA, ColB, 和 ColC represent every column in the table?

If they are the same, is there a reason why you should use the 2nd one anyway? I have a project that's heavy on LINQ, 和 I'm not sure if the st和ard SELECT * it generates is a bad practice, or if I should always be a .Select() on it to specify which cols I want.

EDIT: Changed "When ColA, ColB, 和 ColC are all the columns to the table?" to "When ColA, ColB, 和 ColC represent every column in the table?" for clarity.

推荐答案

一般来说,最好是明确的,所以Select col1, col2 from Table更好.原因是,在某些情况下,可能会向该表添加额外的列,这将导致从查询中返回不需要的数据.

但这并不是一条硬性规定.

Database相关问答推荐

为什么Hibernate会为@JoinTable的双向@OneToMany关系生成一个复杂的子查询?

使用 PostgresQL 判断现有列的约束

SQL 查询至少其中一项

如何使用错误消息中指定的 tbspaceid tableid 在 DB2 中查找表和列

将 .frm 和 .opt 文件导入 MySQL

MS Access:如何在 VBA 中压缩当前数据库

在 SQL Server 2008 R2 中,如何强制一列对于整个表是唯一的?

SQL 历史(history)表设计

在表上插入或更新违反外键约束

我可以为 dapper-dot-net 映射指定数据库列名称吗?

在 Slick 3 的事务中执行非数据库操作

Hibernate、spring、JPS 和隔离 - 不支持自定义隔离

Slick 3.0 在数据库驱动程序级别是reactive/asynchronous的吗?对于哪些数据库?

你可以在一个 Hibernate Session 中有多个事务吗?

我应该在数据库模式中允许空值吗?

使用默认路径中的文件创建数据库

如何在实体框架中使用字符串属性作为主键

对于 N:M 关系,在 MongoDB 中推荐的级联删除等效项是什么?

使用命令行在 Mysql 中导入压缩文件

PostgreSQL 的 EXPLAIN ANALYZE 的 MySQL 类似功能是什么