sql server 2000 视图 编译
Msql Server 2000 视图
曾经听同事说,Sql Server 2000中的视图是类似与“编译过的程序”,所以使用视图能够很好的提高数据库查询的性能。然而,正是这个编译过的程序的性能,可能会引起意想不到的错误。
假如在创建好视图之后,改变表的结构,比如说添加一个字段。又假如你在视图中使用了Select *这样的语句,意料之外的结果就会出现了。
例子:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE view myView1
as
select top 10 *,newColumn='hello world'
from myTable
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
注意,更改表结构之后,直接运行
select top 10 *,newColumn='hello world'
from myTable
这个语句可以得到正确结果,但是在没有改动的情况下运行select * from myView1却得到错误的结果!
解决办法:重新创建或修改一下视图,即使一字不改都可以。我想这样做的结果,是“重新生成”类似于“编译过的程序”。