数据库里没有数据表,为何也能查询?
遇到的问题
项目中用到两个数据库(SQL),一个是数据库名是Chis_Database,一个数据库名是Cis_Database。在SQL的对象资源管理里,在Chis_Database下的表分类里,有一张名为zd_charge_item的数据表,在Cis_Database下的表分类里,没有名为zd_charge_item的这么一张数据表。
在Chis_Database下,我们可以执行如下查询,
1 SELECT * FROM zd_charge_item
也有查询结果,这是正常的,对吧。
但是,在Cis_Database下,我们执行如下查询:
1 SELECT * FROM zd_charge_item
同样,也有查询结果。这就让人非常费解了,数据库里没有数据表,也能查询出结果。
问题的原因
在Cis_Database下,zd_charge_item,实际上是一个视图,视图!!
在视图的分类下,就找到了zd_charge_item。
收获的经验
项目实践中,命名一定要规范化,如果这张表是视图,取表名的时候,一定加上view,比如上述,表名取为view_zd_charge_item。
鸣谢
为什么一个MSSQL数据库,明明企业管理器里面看不到那个表,而查询的时候 却能查到呢?
感谢hiphoper这张帖子,让我恍然大悟!