您现在的位置:龙卷风首页 ›› 网络编程 ›› 阅读文章

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却得到错误的结果!

解决办法:重新创建或修改一下视图,即使一字不改都可以。我想这样做的结果,是“重新生成”类似于“编译过的程序”。

作者 不见不散 本文仅代表作者观点,与龙卷风资讯网立场无关。

我来说两句

内容/Content