视图里定义绑定需要2段式名称,但感觉1段名称也足以实现绑定目的了啊,为什么语法里要多此一举的强迫使用2段名称呢?

解决方案 »

  1.   

    但是吧,你看看啊......相比select查询,select里可以不指定架构名让DBMS自己锁定对象(虽然不是啥好方式),至于锁定的是否符合需求不论,确实是可以不指定2段名进行查找,而且也确实把不同架构下的同名对象区分开了,那为什么WITH SCHEMABIDING不用同样的方式呢,就是即支持1段名,也支持2段名的方式,却强迫2段呢......
      

  2.   

    select * from tb 
    SQL SERVER首先会在sys架构下找这个表
    找不到就到用户的默认架构下找表
    找不到再到dbo这个架构下找表也就是说系统会自动查找你的表 在你未说明架构的情况下以上寻找顺序是个人模糊记忆下的 也许会错
      

  3.   

    这个没解决我要问的本质啊......我知道SQL SERVER可以自己寻表的,我想问的就是为什么加了WITH SCHEMABIDING以后却不应用自动寻表,反而要求明确指定表,这种做法是出于什么目的......
      

  4.   

    唉到最后也没能真正解决问题,不知道是我的认识太浅还是我的表述不清,再等2天,没有更好答案的话就把分平分
    这里重新表述一下问题:
    select里可以只用1段名的方式让DBMS自己锁定对象,至于锁定的是否符合需求不论,确实是可以不指定2段名进行查找,而且也确实把不同架构下的同名对象区分开了,那为什么WITH SCHEMABIDING不用同样的方式呢,就是既支持1段名,也支持2段名的方式,却强迫2段呢......
    PS:这个表述的意思并不是我想知道DBMS锁定1段名对象的锁定过程(比如9楼的回答),而是我想知道WITH SCHEMABIDING只支持2段名,却不是类似select中既支持1段名,也支持2段名,这么做的目的......