我听说SELECT *在编写SQL命令时使用通常是不好的做法,因为它对SELECT您特别需要的列更有效.
如果我需要SELECT表中的每一列,我应该使用
SELECT * FROM TABLE
要么
SELECT column1, colum2, column3, etc. FROM TABLE
在这种情况下,效率真的重要吗?SELECT *如果你确实需要所有的数据,我认为内部会更优化,但我说的是没有真正了解数据库.
我很想知道在这种情况下最佳做法是什么.
更新:我可能应该指定我真正想要做的唯一情况SELECT *是当我从一个表中选择数据时我知道所有列总是需要被检索,即使添加了新列.
鉴于我所看到的反应,这仍然是一个坏主意,SELECT *永远不应该用于更多技术原因,我曾经考虑过.
我正在使用MS SQL Server 2005.与SQL引擎之间有区别
SELECT * FROM MyTable;
和
SELECT ColA, ColB, ColC FROM MyTable;
当ColA,ColB和ColC代表表格中的每一列时?
如果它们是相同的,那么为什么你应该使用第二个呢?我有一个对LINQ很重的项目,我不确定它生成的标准SELECT*是不是很糟糕,或者我应该总是使用.Select()来指定我想要的cols.
编辑:更改"当ColA,ColB和ColC是表格的所有列?" "当ColA,ColB和ColC代表表格中的每一列?" 为清楚起见.