视图必须满足三个条件:
1、不能再查询中使用order by,除非定义中包含Top或For XML;(这是因为视图被认为是一种表,而表是一种逻辑实体,它的行没有顺序)
2、所有的结果列必须有名称;
3、所有的结果列名称必须唯一;
下面我们逐一试验,进行证明
Test1:证明【不能再查询中使用order by,除非定义中包含Top或For XML】;
我们尝试在SSMS中编写如下代码
如果我们加上Top了呢,可以看到视图已经创建成功了
Test2:证明条件2和条件3
执行如下视图定义语句
可以看到整形成功了,难道上面的说法是错误的,我们再来看看改视图的设计
我们可以看到sql server已经帮我们把*转换成了具体的列名