65.9K
CodeProject 正在变化。 阅读更多。
Home

“选择 *” 的危害

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.43/5 (6投票s)

2011年7月25日

CPOL
viewsIcon

12975

“选择 *” 另一个“奇怪的特性”是,在视图 (View) 中,“选择 *” 并不会选择表中的所有列。它选择的是在视图创建时表中存在的列。我是在向表中添加了一些列,并想在...中映射这些列时才发现的。

“选择 *” 另一个“奇怪的特性”是,在视图 (View) 中,“选择 *” 并不会选择表中的所有列。它选择的是在视图创建时表中存在的列。我是在向表中添加了一些列,并想在自定义 VB Class 中映射这些列时才发现的。我创建了一些 Properties 并通过一个 SqlCommand Object 从视图中选择数据来填充它们。但是 Properties 没有获得值。我查看了视图,发现是 select * from table 加上一些连接 (joins)。我以为 select * 总是会选择所有列,并认为错误出在我的代码中。直到一个小时后,我才更新了视图(仅仅打开修改视图的脚本并运行它就解决了问题,实际上不需要进行任何真正的更改)。在那之后,我惊讶地看到一切都正常工作了。让东西正常工作通常是令人满意的。但是,在没有实际更改任何东西的情况下让东西正常工作却令人沮丧... 那时我放弃了 select *... 我只在临时查询中用它来查找一些值,绝不在生产代码中使用。
© . All rights reserved.